perm filename V243.XGP[TEX,DEK]1 blob
sn#379674 filedate 1978-09-08 generic text, type T, neo UTF8
/LMAR=50/TMAR=50/RMAR=4095/BMAR=1/PMAR=0/XLINE=0/FONT#0=NGR13/USETI=0000505*TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX*
␈β ←␈↓ α6␈εαSECTION␈α4.3␈αof␈αTHE␈αAR␈α⎇T␈αOF␈αCOMPUTER␈αPR␈α␈OGRAMMING
␈β
␈↓ β%␈ε⊗⎇␈εα␈α1978␈αAddison↑Wesley␈αPublishing␈αCompan␈α␈y,␈αInc.
␈β⊃L␈↓ ε2␈ε∧0
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα247
␈βα(␈↓ ↓H␈ε≥4␈α␈.3.␈α
MUL␈α|TIP␈α↓LE␈α␈-P␈α↓RECISION␈α∞ARITHM␈α␈ETIC
␈βαo␈↓ ↓H␈εαL␈↓ β⊗␈εαconsider␈α operations␈αλon␈α n␈α␈um␈α␈bers␈α that␈αλhav␈α␈e␈α arbitrarily␈α high␈αλprecision.
␈βαt␈↓ ↓`␈ε∧ET␈αλUS␈απNO␈α␈W
␈ββ~␈↓ ↓H␈εαFor␈αsimplicity␈αin␈αexposition,␈αw␈α␈e␈αshall␈αassume␈αthat␈αw␈α␈e␈αare␈αw␈α␈orking␈αwith␈αin␈α␈tegers,
␈ββE␈↓ ↓H␈εαinstead␈αof␈αwith␈αn␈α␈um␈α␈bers␈αthat␈αhav␈α␈e␈αan␈αem␈α␈bedded␈αradix␈αpoin␈α␈t.
␈β∧Z␈↓ ↓H␈ε≥4␈α␈.3.1.␈α
The␈α
Clas␈α↓sical␈α
Algorithms
␈β¬!␈↓ ↓H␈εαIn␈αthis␈αsection␈αw␈α␈e␈αshall␈αdiscuss␈αalgorithms␈αfor:
␈β¬m␈↓ ↓b␈εαa)␈↓ α␈εαaddition␈α
or␈αsubtraction␈α
of␈↓ ¬1␈ελn␈↓ ¬F␈εα-place␈α
in␈α␈tegers,␈α
giving␈αan␈↓ λ↑␈ελn␈↓ λt␈εα-place␈αansw␈α␈er␈α
and␈αa
␈βε_␈↓ α␈εαcarry;
␈βεT␈↓ ↓`␈εαb)␈↓ α␈εαm␈α␈ultiplication␈αλof␈α an␈↓ ∧D␈ελn␈↓ ∧Z␈εα-place␈αλin␈α␈teger␈αλby␈α an␈↓ π⊂␈ελm␈↓ π0␈εα-place␈αλin␈α␈teger,␈α giving␈α an␈αλ(␈↓
5␈ελm␈↓
X␈εα+␈↓
␈␈ελn␈↓ ∀␈εα)-
␈βε␈␈↓ α␈εαplace␈αansw␈α␈er;
␈βπ;␈↓ ↓d␈εαc)␈↓ α␈εαdivision␈α of␈α an␈α (␈↓ βq␈ελm␈↓ ∧∃␈εα+␈↓ ∧=␈ελn␈↓ ∧S␈εα)-place␈α in␈α␈teger␈α by␈α
an␈↓ π→␈ελn␈↓ π.␈εα-place␈α in␈α␈teger,␈α
giving␈α an␈α (␈↓
6␈ελm␈↓
Z␈εα+␈α∧1)-
␈βπg␈↓ α␈εαplace␈αquotien␈α␈t␈αand␈αan␈↓ ∧m␈ελn␈↓ ¬β␈εα-place␈αremainder.
␈βλ2␈↓ ↓H␈εαThese␈αmay␈αbe␈αcalled␈α\the␈αclassical␈αalgorithms,"␈αsince␈αthe␈αw␈α␈ord␈α\algorithm"␈αwas
␈βλ↑␈↓ ↓H␈εαused␈αonly␈αin␈αconnection␈αwith␈αthese␈αprocesses␈αfor␈αsev␈α␈eral␈αcen␈α␈turies.␈αThe␈αterm␈α\␈↓ ␈ελn␈↓ ␈εα-
␈β ∧␈↓ πε␈εn
␈β ␈↓ ↓H␈εαplace␈α
in␈α␈teger"␈α∞means␈α∞an␈α␈y␈α
in␈α␈teger␈α∞less␈α
than␈↓ εx␈ελb␈↓ π_␈εα,␈α∞where␈↓ λ~␈ελb␈↓ λ6␈εαis␈α∞the␈α
radix␈α∞of␈α
ordinary
␈β 4␈↓ ↓H␈εαpositional␈α∞notation␈α∂in␈α∂which␈α∂the␈α∂n␈α␈um␈α␈bers␈α∂are␈α∂expressed;␈α⊂such␈α∂n␈α␈um␈α␈bers␈α∂can␈α∞be
␈β ←␈↓ ↓H␈εαwritten␈αusing␈αat␈αmost␈↓ ∧(␈ελn␈↓ ∧I␈εα\places"␈αin␈αthis␈αnotation.
␈β
␈↓ α␈εαIt␈α
is␈α
a␈αstraigh␈α␈tforward␈α
matter␈α
to␈α
apply␈αthe␈α
classical␈α
algorithms␈α
for␈αin␈α␈tegers
␈β
7␈↓ ↓H␈εαto␈α
n␈α␈um␈α␈bers␈α
with␈α
em␈α␈bedded␈α
radix␈α
poin␈α␈ts␈α
or␈α
to␈α
extended-precision␈α
⎇oating-poin␈α␈t
␈β
b␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αin␈α
the␈αsame␈αway␈αthat␈αarithmetic␈α
operations␈αde|ned␈αfor␈αin␈α␈tegers␈αin␈ε∃␈α
MIX
␈β∞␈↓ ↓H␈εαare␈αapplied␈αto␈αthese␈αmore␈αgeneral␈αproblems.
␈β:␈↓ α␈εαIn␈αthis␈αsection␈αw␈α␈e␈αshall␈αstudy␈αalgorithms␈αthat␈αdo␈αoperations␈α(a),␈α(b),␈αand␈α(c)
␈βe␈↓ ↓H␈εαabo␈α␈v␈α␈e␈α∂for␈α⊂in␈α␈tegers␈α∂expressed␈α⊂in␈α∂radix␈↓ ε*␈ελb␈↓ εG␈εαnotation,␈α⊃where␈↓ λQ␈ελb␈↓ λo␈εαis␈α∂an␈α␈y␈α⊂giv␈α␈en␈α∂in␈α␈teger
␈β⊃␈↓ ↓H␈ε⊗∃␈εα␈α2.␈α⊂Th␈α␈us␈α∞the␈α
algorithms␈α∞are␈α
quite␈α∞general␈α
de|nitions␈α∞of␈α
arithmetic␈α
processes,
␈β<␈↓ ↓H␈εαand␈α
as␈α
such␈α
they␈α∞are␈α
unrelated␈α
to␈α∞an␈α␈y␈α
particular␈α
computer.␈α⊂But␈α
the␈α
discussion
␈βg␈↓ ↓H␈εαin␈αthis␈αsection␈αwill␈αalso␈αbe␈αsomewhat␈αmachine-orien␈α␈ted,␈αsince␈αw␈α␈e␈αare␈αchie⎇y␈αcon-
␈β
∩␈↓ ↓H␈εαcerned␈αwith␈α
e}cien␈α␈t␈αmethods␈αfor␈αdoing␈αhigh-precision␈αcalculations␈αby␈α
computer.
␈β
=␈↓ ↓H␈εαAlthough␈α⊃our␈α⊃examples␈α⊃are␈α⊃based␈α⊃on␈α∩the␈α⊃m␈α␈ythical␈ε∃␈α⊃MI␈α␈X␈εα,␈α⊃essen␈α␈tially␈α⊃the␈α⊃same
␈β
i␈↓ ↓H␈εαconsiderations␈α
apply␈α∞to␈α∞nearly␈α
ev␈α␈ery␈α∞other␈α∞machine.␈α⊃For␈α∞con␈α␈v␈α␈enience,␈α∞w␈α␈e␈α
shall
␈β∞∀␈↓ ↓H␈εαassume␈α|rst␈αthat␈αw␈α␈e␈αhav␈α␈e␈αa␈αcomputer␈α(lik␈α␈e␈ε∃␈αMIX␈εα␈α␈)␈αthat␈αuses␈αthe␈αsigned-magnitude
␈β∞?␈↓ ↓H␈εαrepresen␈α␈tation␈α
for␈αn␈α␈um␈α␈bers;␈αsuitable␈αmodi|cations␈αfor␈αcomplemen␈α␈t␈αnotations␈α
are
␈β∞j␈↓ ↓H␈εαdiscussed␈αnear␈αthe␈αend␈αof␈αthis␈αsection.
␈β∂↔␈↓ α␈εαThe␈α most␈α
importan␈α␈t␈α fact␈α to␈α understand␈α
about␈α extended-precision␈α n␈α␈um␈α␈bers␈α is
␈β∂B␈↓ ↓H␈εαthat␈αλthey␈αλmay␈α be␈αλregarded␈αλas␈αλn␈α␈um␈α␈bers␈α written␈αλin␈αλradix␈↓ λ→␈ελw␈↓ λ<␈εαnotation,␈α where␈↓
7␈ελw␈↓
Z␈εαis␈αλthe
␈β∂m␈↓ ↓H␈εαcomputer's␈αw␈α␈ord␈αsize.␈αFor␈αexample,␈αan␈αin␈α␈teger␈αthat␈α|lls␈α10␈αw␈α␈ords␈αon␈αa␈αcomputer
␈β⊂∀␈↓ ∧]␈ε¬10
␈β⊂→␈↓ ↓H␈εαwhose␈α w␈α␈ord␈αλsize␈α is␈↓ βf␈ελw␈↓ ∧␈εα=␈α
1␈↓ ∧K␈εα0␈↓ ¬β␈εαhas␈α 100␈αλdecimal␈α digits;␈α
but␈α w␈α␈e␈α will␈α consider␈α it␈α to␈α be␈αλa
␈β⊂?␈↓ ¬,␈ε¬10
␈β⊂D␈↓ ↓H␈εα10-place␈α
n␈α␈um␈α␈ber␈αto␈α
the␈α
base␈α1␈↓ ¬~␈εα0␈↓ ¬I␈εα.␈αThis␈αviewpoin␈α␈t␈α
is␈αjusti|ed␈α
for␈αthe␈α
same␈α
reason
␈β⊂o␈↓ ↓H␈εαthat␈α
w␈α␈e␈α
may␈α
con␈α␈v␈α␈ert,␈α
say,␈αfrom␈α
binary␈α
to␈α
octal␈α
notation,␈α
simply␈α
by␈α
grouping␈α
the
␈β⊃~␈↓ ↓H␈εαbits␈αtogether.␈α(See␈αEq.␈α4.1↑5.)
␈β∪(
␈β↓Y␈↓ ↓H␈εα248␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα(␈↓ α␈εαIn␈α
these␈α
terms,␈α
w␈α␈e␈α are␈α
giv␈α␈en␈α
the␈α
follo␈α␈wing␈α primitiv␈α␈e␈α
operations␈α
to␈α
w␈α␈ork␈α with:
␈βα↑␈↓ ↓T␈εαa␈↓ ↓t␈εα)␈↓ α␈εαaddition␈αor␈αsubtraction␈αof␈αone-place␈αin␈α␈tegers,␈αgiving␈αa␈αone-place␈αansw␈α␈er␈αand
␈βαk␈↓ ↓f␈ε¬0
␈ββ ␈↓ α␈εαa␈αcarry;
␈ββ?␈↓ ↓R␈εαb␈↓ ↓t␈εα)␈↓ α␈εαm␈α␈ultiplication␈α
of␈αa␈α
one-place␈α
in␈α␈teger␈α
by␈αanother␈α
one-place␈α
in␈α␈teger,␈α
giving␈αa
␈ββL␈↓ ↓f␈ε¬0
␈ββj␈↓ α␈εαt␈α␈w␈α␈o-place␈αansw␈α␈er;
␈β∧ ␈↓ ↓V␈εαc␈↓ ↓t␈εα)␈↓ α␈εαdivision␈α⊃of␈α⊃a␈α⊂t␈α␈w␈α␈o-place␈α⊃in␈α␈teger␈α⊃by␈α⊃a␈α⊂one-place␈α⊃in␈α␈teger,␈α∩pro␈α␈vided␈α⊃that␈α⊂the
␈β∧-␈↓ ↓f␈ε¬0
␈β∧K␈↓ α␈εαquotien␈α␈t␈αis␈αa␈αone-place␈αin␈α␈teger,␈αand␈αyielding␈αalso␈αa␈αone-place␈αremainder.
␈β¬↓␈↓ ↓H␈εαBy␈απadjusting␈αλthe␈αλw␈α␈ord␈αλsize,␈αλif␈αλnecessary,␈α nearly␈αλall␈απcomputers␈αλwill␈αλhav␈α␈e␈αλthese␈απthree
␈β¬,␈↓ ↓H␈εαoperations␈αavailable;␈αso␈αw␈α␈e␈αwill␈αconstruct␈αalgorithms␈α(a),␈α(b),␈αand␈α(c)␈αmen␈α␈tioned
␈β¬W␈↓ ↓H␈εαabo␈α␈v␈α␈e␈αin␈αterms␈αof␈αthe␈αprimitiv␈α␈e␈αoperations␈α(a␈↓ π→␈εα),␈α(b␈↓ πi␈εα),␈αand␈α(c␈↓ λ|␈εα).
␈β¬e␈↓ π␈ε¬0␈↓ π[␈ε¬0␈↓ λm␈ε¬0
␈βεα␈↓ α␈εαSince␈αw␈α␈e␈αare␈αvisualizing␈αextended-precision␈αin␈α␈tegers␈αas␈αbase␈↓ =␈ελb␈↓ W␈εαn␈α␈um␈α␈bers,␈αit␈αis
␈βε.␈↓ ↓H␈εαsometimes␈α
helpful␈α
to␈α
think␈α
of␈α
the␈α
situation␈α
when␈↓ πF␈ελb␈↓ π←␈εα=␈α
10,␈α
and␈α
to␈α
imagine␈α
that␈α
w␈α␈e
␈βεY␈↓ ↓H␈εαare␈αλdoing␈αλthe␈αλarithmetic␈αλby␈αλhand.␈αThen␈αλoperation␈αλ(a␈↓ πx␈εα)␈αλis␈αλanalogous␈αλto␈αλmemorizing
␈βεf␈↓ πi␈ε¬0
␈βπ∧␈↓ ↓H␈εαthe␈α
addition␈αtable;␈α(b␈↓ ∧#␈εα)␈αis␈α
analogous␈αto␈αmemorizing␈αthe␈α
m␈α␈ultiplication␈αtable;␈αand
␈βπ⊃␈↓ ∧∀␈ε¬0
␈βπ/␈↓ ↓H␈εα(c␈↓ ↓r␈εα)␈αis␈αessen␈α␈tially␈α
memorizing␈αthe␈αm␈α␈ultiplication␈αtable␈αin␈α
rev␈α␈erse.␈αThe␈αmore␈α
com-
␈βπ=␈↓ ↓d␈ε¬0
␈βπZ␈↓ ↓H␈εαplicated␈α
operations␈α
(a),␈α(b),␈α
(c)␈αon␈α
high-precision␈α
n␈α␈um␈α␈bers␈α
can␈αno␈α␈w␈α
be␈α
done␈α
using
␈βλε␈↓ ↓H␈εαthe␈α⊂simple␈α⊂addition,␈α⊃subtraction,␈α⊃m␈α␈ultiplication,␈α⊃and␈α⊂long␈α⊂division␈α⊂procedures
␈βλ1␈↓ ↓H␈εαw␈α␈e␈αare␈αtaugh␈α␈t␈αin␈αelemen␈α␈tary␈αschool.␈αIn␈αfact,␈αmost␈αof␈αthe␈αalgorithms␈αw␈α␈e␈αshall␈αdis-
␈βλ\␈↓ ↓H␈εαcuss␈αin␈αthis␈αsection␈αare␈αessen␈α␈tially␈αnothing␈αmore␈αthan␈αmechanizations␈αof␈αfamiliar
␈β π␈↓ ↓H␈εαpencil-and-paper␈α operations.␈αOf␈α
course,␈α
w␈α␈e␈α
m␈α␈ust␈α state␈α
the␈α algorithms␈α
m␈α␈uch␈α more
␈β 2␈↓ ↓H␈εαprecisely␈αthan␈αthey␈αhav␈α␈e␈αev␈α␈er␈αbeen␈αstated␈αin␈αthe␈α|fth␈αgrade,␈αand␈αw␈α␈e␈αshould␈αalso
␈β ↑␈↓ ↓H␈εαattempt␈αto␈αminimize␈αcomputer␈αmemory␈αand␈αrunning␈αtime␈αrequiremen␈α␈ts.
␈β
␈↓ α␈εαTo␈α
av␈α␈oid␈α
a␈α
tedious␈α
discussion␈α
and␈α
cum␈α␈bersome␈α
notations,␈α
let␈α
us␈α
assume␈α
that
␈β
4␈↓ ↓H␈εαall␈α n␈α␈um␈α␈bers␈α
w␈α␈e␈α
deal␈α with␈α
are␈ε∂␈α
nonnegativ␈α␈e.␈εα␈αThe␈α
additional␈α w␈α␈ork␈α
of␈α
computing␈α the
␈β
←␈↓ ↓H␈εαsigns,␈αetc.,␈αis␈αquite␈αstraigh␈α␈tforward,␈αand␈αthe␈αreader␈αwill␈α|nd␈αit␈αeasy␈αto␈α|ll␈αin␈αan␈α␈y
␈β
␈↓ ↓H␈εαdetails␈αof␈αthis␈αsort.
␈β6␈↓ α␈εαFirst␈α comes␈α
addition,␈α
which␈α of␈α course␈α
is␈α v␈α␈ery␈α simple,␈α
but␈α it␈α
is␈α w␈α␈orth␈α studying
␈βa␈↓ ↓H␈εαsince␈αthe␈αsame␈αideas␈αoccur␈αin␈αthe␈αother␈αalgorithms␈αalso:
␈β!␈↓ ↓H␈ε∩Algorithm␈α⊃A␈εα␈α∩(␈ε∂Addition␈α∩of␈α⊃nonnegativ␈α␈e␈α∩in␈α␈tegers␈↓ πD␈εα)␈ε∩.␈εα␈α$Giv␈α␈en␈α⊃nonnegativ␈α␈e␈↓
;␈ελn␈↓
P␈εα-place
␈βL␈↓ ↓H␈εαin␈α␈tegers␈α∞(␈↓ α[␈ελu␈↓ α}␈ελu␈↓ β'␈εα.␈αε.␈αε.␈↓ βW␈ελu␈↓ β⎇␈εα)␈↓ ∧#␈εαand␈α∞(␈↓ ∧w␈ελv␈↓ ¬∃␈ελv␈↓ ¬:␈εα.␈αε.␈αε.␈↓ ¬j␈ελv␈↓ ε␈εα)␈↓ ε#␈εα,␈α∂this␈α∞algorithm␈α∞forms␈α∞their␈α∞radix-␈↓
F␈ελb␈↓
b␈εαsum,
␈βZ␈↓ αo␈ε¬1␈↓ β∩␈ε¬2␈↓ βk␈εn␈↓ ∧ ␈εb␈↓ ¬π␈ε¬1␈↓ ¬%␈ε¬2␈↓ ¬y␈εn␈↓ ε↔␈εb
␈βx␈↓ ↓H␈εα(␈↓ ↓T␈ελw␈↓ ↓z␈ελw␈↓ α ␈ελw␈↓ αL␈εα.␈αε.␈αε.␈↓ α|␈ελw␈↓ β&␈εα)␈↓ β>␈εα.␈α(Here␈↓ ∧4␈ελw␈↓ ∧f␈εαis␈αthe␈α\carry,"␈αand␈αit␈αwill␈αalways␈αbe␈αequal␈αto␈α0␈αor␈α1.)
␈β
¬␈↓ ↓k␈ε¬0␈↓ α∩␈ε¬1␈↓ α8␈ε¬2␈↓ β∀␈εn␈↓ β2␈εb␈↓ ∧L␈ε¬0
␈β
-␈↓ ↓J␈ε∩A1.␈↓ α␈εα[Initialize.]␈α~Set␈↓ ∧
␈ελj␈↓ ∧$␈ε⊗ ␈↓ ∧R␈ελn␈↓ ∧h␈εα,␈↓ ∧}␈ελk␈↓ ¬~␈ε⊗ ␈εα␈α0.␈α(The␈αvariable␈↓ πQ␈ελj␈↓ πn␈εαwill␈αrun␈αthrough␈αthe␈αvarious
␈β
Y␈↓ α␈εαdigit␈αpositions,␈αand␈αthe␈αvariable␈↓ ε∞␈ελk␈↓ ε,␈εαk␈α␈eeps␈αtrack␈αof␈αcarries␈αat␈αeach␈αstep.)
␈β∞∞␈↓ ↓J␈ε∩A2.␈↓ α␈εα[Add␈αdigits.]␈α~Set␈↓ ∧&␈ελw␈↓ ∧V␈ε⊗ ␈εα␈α
(␈↓ ¬⊂␈ελu␈↓ ¬:␈εα+␈↓ ¬g␈ελv␈↓ ε␈εα+␈↓ ε8␈ελk␈↓ εJ␈εα)␈↓ ε\␈εαmod␈↓ π&␈ελb␈↓ π4␈εα,␈α
and␈↓ λ⊃␈ελk␈↓ λ-␈ε⊗ ␈αb␈εα(␈↓ λv␈ελu␈↓ ␈εα+␈↓ L␈ελv␈↓ q␈εα+␈↓
≥␈ελk␈↓
/␈εα)/␈↓
M␈ελb␈↓
\␈ε⊗c␈εα.␈α(In
␈β∞≤␈↓ ∧>␈εj␈↓ ¬%␈εj␈↓ ¬v␈εj␈↓
␈εj␈↓ \␈εj
␈β∞:␈↓ α␈εαother␈α
w␈α␈ords,␈↓ βW␈ελk␈↓ βr␈εαis␈α set␈α
to␈α
1␈α or␈α
0,␈α
depending␈α on␈α
whether␈α a␈α
\carry"␈α occurs␈α
or␈α not,
␈β∞e␈↓ α␈εαi.e.,␈α
whether␈↓ β]␈ελu␈↓ ∧π␈εα+␈↓ ∧4␈ελv␈↓ ∧Z␈εα+␈↓ ¬ε␈ελk␈↓ ¬$␈ε⊗∃␈↓ ¬T␈ελb␈↓ ¬o␈εαor␈α
not.␈α⊂At␈α
most␈α
one␈α
carry␈α
is␈α
possible␈α
during
␈β∞r␈↓ βq␈εj␈↓ ∧D␈εj
␈β∂⊂␈↓ α␈εαthe␈αt␈α␈w␈α␈o␈αadditions,␈αsince␈αw␈α␈e␈αalways␈αhav␈α␈e
␈β∂f␈↓ ∧ ␈ελu␈↓ ∧3␈εα+␈↓ ∧←␈ελv␈↓ ¬∧␈εα+␈↓ ¬0␈ελk␈↓ ¬L␈ε⊗∀␈εα␈α
(␈↓ εε␈ελb␈↓ ε≤␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ π&␈ελb␈↓ π=␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ1␈α
<␈α
2␈↓ ↔␈ελb␈↓ %␈εα,
␈β∂s␈↓ ∧≡␈εj␈↓ ∧o␈εj
␈β⊂;␈↓ α␈εαby␈αinduction␈αon␈αthe␈αcomputation.)
␈β⊂q␈↓ ↓J␈ε∩A3.␈↓ α␈εα[Loop␈α
on␈↓ β ␈ελj␈↓ β0␈εα.]␈α∀Decrease␈↓ ∧l␈ελj␈↓ ¬ε␈εαby␈α
one.␈αNo␈α␈w␈α
if␈↓ εt␈ελj␈↓ π∞␈εα>␈α
0,␈αgo␈α back␈α
to␈α
step␈α
A2;␈α
otherwise
␈β⊃≤␈↓ α␈εαset␈↓ αD␈ελw␈↓ αt␈ε⊗ ␈↓ β"␈ελk␈↓ β@␈εαand␈αterminate␈αthe␈αalgorithm.
␈β⊃!␈↓ π2␈∧⊃!π2≠∂
␈β⊃)␈↓ α\␈ε¬0
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα249
␈βα(␈↓ ↓H␈εαFor␈αa␈αformal␈αproof␈αthat␈αAlgorithm␈αA␈αis␈αa␈αvalid,␈αsee␈αex␈α␈ercise␈α4.
␈βαa␈↓ α␈εαA␈ε∃␈αMI␈α␈X␈εα␈αprogram␈αfor␈αthis␈αaddition␈αprocess␈αmigh␈α␈t␈αtak␈α␈e␈αthe␈αfollo␈α␈wing␈αform:
␈ββ'␈↓ ↓H␈ε∩Program␈α
A␈εα␈α
(␈ε∂Addition␈αof␈α
nonnegativ␈α␈e␈αin␈α␈tegers␈↓ πε␈εα)␈ε∩.␈εα␈α∃Let␈↓ πr␈ε∃LO␈α␈C␈↓ λ0␈εα(␈↓ λ<␈ελu␈↓ λ↑␈εα)␈ε⊗␈α
⊃␈ε∃␈α
U␈εα␈α¬+␈↓ f␈ελj␈↓ w␈εα,␈↓
␈ε∃LOC␈↓
I␈εα(␈↓
U␈ελv␈↓
r␈εα)␈ε⊗␈α
⊃
␈ββ4␈↓ λQ␈εj␈↓
e␈εj
␈ββR␈↓ ↓H␈ε∃V␈εα␈απ+␈↓ α⊂␈ελj␈↓ α!␈εα,␈↓ α7␈ε∃L␈α␈OC␈↓ αu␈εα(␈↓ β↓␈ελw␈↓ β&␈εα)␈ε⊗␈α
⊃␈ε∃␈α
W␈εα␈απ+␈↓ ∧2␈ελj␈↓ ∧C␈εα,␈↓ ∧Y␈εαrI␈↓ ∧s␈εα1␈ε⊗␈α
⊃␈↓ ¬=␈ελj␈↓ ¬M␈εα,␈↓ ¬c␈εαrA␈↓ ε∃␈ε⊗⊃␈↓ εC␈ελk␈↓ εU␈εα,␈αw␈α␈ord␈αsize␈↓ λε␈ε⊗⊃␈↓ λ4␈ελb␈↓ λB␈εα,␈ε∃␈αN␈ε⊗␈α
⊃␈↓ %␈ελn␈↓ ;␈εα.
␈ββ←␈↓ β→␈εj
␈β∧$␈↓ βa␈ε∃ENT1␈↓ ∧↑␈ε∃N
␈β∧'␈↓ αL␈ε 01␈↓ ε'␈εβ1␈↓ π&␈ε⊂Al␈α↓.␈αInitialize.␈↓ ∧␈ε j␈↓ ≥␈ε↔ ␈↓ G␈ε n␈↓ [␈εβ.
␈β∧A␈↓ π&␈∧∧Aπ&α↓=
␈β∧K␈↓ βa␈ε∃JOV␈↓ ∧↑␈ε∃O␈α␈FLO
␈β∧N␈↓ αL␈ε 02␈↓ ε'␈εβ1␈↓ π&␈εβE␈α↓n␈α␈sure␈α
o␈α␈v␈α␈er␈α␈⎇o␈α␈w␈αis␈αo{.
␈β∧s␈↓ β∂␈ε∃1␈α␈H␈↓ βa␈ε∃ENTA␈↓ ∧↑␈ε∃0
␈β∧v␈↓ αL␈ε 03␈↓ ¬Z␈ε N␈↓ ε␈εβ+␈αλ1␈ε↔␈απ␈␈↓ εj␈ε K␈↓ π&␈ε k␈↓ π@␈ε↔ ␈εβ␈α
0␈α␈.
␈β¬~␈↓ βa␈ε∃J1Z␈↓ ∧↑␈ε∃3␈α␈F
␈β¬≥␈↓ αL␈ε 04␈↓ ¬Z␈ε N␈↓ ε␈εβ+␈αλ1␈ε↔␈απ␈␈↓ εj␈ε K␈↓ π&␈εβTo␈αA3␈αif␈↓ λ-␈ε j␈↓ λF␈εβ=␈α 0.
␈β¬B␈↓ β∂␈ε∃2␈α␈H␈↓ βa␈ε∃ADD␈↓ ∧↑␈ε∃U␈α␈,1
␈β¬E␈↓ αL␈ε 05␈↓ ε ␈ε N␈↓ π&␈ε⊂A2.␈αA␈α↓d␈α␈d␈αd␈α␈i␈↓ λG␈ε⊂g␈↓ λX␈ε⊂its.
␈β¬←␈↓ π&␈∧¬←π&α↓!␈↓ λX␈∧¬←λXα-
␈β¬j␈↓ βa␈ε∃ADD␈↓ ∧↑␈ε∃V␈α␈,1
␈β¬m␈↓ αL␈ε 06␈↓ ε ␈ε N
␈βε⊃␈↓ βa␈ε∃STA␈↓ ∧↑␈ε∃W␈α␈,1
␈βε∀␈↓ αL␈ε 07␈↓ ε ␈ε N
␈βε9␈↓ βa␈ε∃DEC1␈↓ ∧↑␈ε∃1
␈βε<␈↓ αL␈ε 08␈↓ ε ␈ε N␈↓ π&␈ε⊂A3.␈αL␈α↓o␈α␈o␈↓ λ≠␈ε⊂p␈↓ λ9␈ε⊂o␈α␈n␈↓ λg␈ε j␈↓ λv␈ε⊂.
␈βεV␈↓ π&␈∧εVπ&αu␈↓ λ#␈∧εVλ#αE␈↓ λo␈∧εVλoα⊃
␈βε`␈↓ βa␈ε∃JNOV␈↓ ∧↑␈ε∃1␈α␈B
␈βεc␈↓ αL␈ε 09␈↓ ε ␈ε N␈↓ π&␈εβI␈α↓f␈αn␈α␈o␈αo␈α␈v␈α}er⎇o␈α}w,␈αse␈α␈t␈↓ 5␈ε k␈↓ O␈ε↔ ␈εβ␈α
0␈α␈.
␈βπλ␈↓ βa␈ε∃ENTA␈↓ ∧↑␈ε∃1
␈βπ␈↓ αL␈ε 10␈↓ ε"␈ε K␈↓ π&␈εβOtherwise,␈αset␈↓ ↓␈ε k␈↓ ~␈ε↔ ␈εβ␈α
1.
␈βπ0␈↓ βa␈ε∃J1P␈↓ ∧↑␈ε∃2␈α␈B
␈βπ3␈↓ αL␈ε 11␈↓ ε"␈ε K␈↓ π&␈εβTo␈αA2␈αif␈↓ λ-␈ε j␈↓ λF␈ε↔≤␈εβ␈α 0.
␈βπW␈↓ β∂␈ε∃3␈α␈H␈↓ βa␈ε∃STA␈↓ ∧↑␈ε∃W
␈βπZ␈↓ αL␈ε 12␈↓ ε'␈εβ1␈↓ π&␈εβStor␈α␈e␈α|n␈α␈al␈αcarry␈α
i␈α↓n␈↓ E␈ε w␈↓ h␈εβ.
␈βπ\␈↓
⊗␈∧π\
⊗≠∂
␈βπe␈↓ [␈εε0
␈βλ0␈↓ ↓H␈εαThe␈α running␈α
time␈α
for␈α
this␈α program␈α
is␈α
10␈↓ ε0␈ελN␈↓ εV␈εα+␈α¬6␈α
cy␈α␈cles,␈α
independen␈α␈t␈α
of␈α
the␈α n␈α␈um␈α␈ber
␈βλ[␈↓ ↓H␈εαof␈αcarries,␈↓ αn␈ελK␈↓ β␈εα.␈αThe␈αquan␈α␈tity␈↓ ∧⎇␈ελK␈↓ ¬'␈εαis␈αanalyzed␈αin␈αdetail␈αat␈αthe␈αclose␈αof␈αthis␈αsection.
␈β π␈↓ α␈εαMan␈α␈y␈α
modi|cations␈αof␈α
Algorithm␈αA␈α
are␈α
possible,␈αand␈α
only␈αa␈α
few␈αof␈α
these␈α
are
␈β 2␈↓ ↓H␈εαmen␈α␈tioned␈αin␈αthe␈αex␈α␈ercises␈αbelo␈α␈w.␈αA␈αchapter␈αon␈αgeneralizations␈αof␈αthis␈αalgorithm
␈β ]␈↓ ↓H␈εαmigh␈α␈t␈αbe␈αen␈α␈titled␈α\Ho␈α␈w␈αto␈αdesign␈αaddition␈αcircuits␈αfor␈αa␈αdigital␈αcomputer."
␈β
␈↓ α␈εαThe␈α∂problem␈α⊂of␈α∂subtraction␈α∂is␈α∂similar␈α∂to␈α⊂addition,␈α⊂but␈α∂the␈α∂di{erences␈α∂are
␈β
4␈↓ ↓H␈εαw␈α␈orth␈αnoting:
␈β
z␈↓ ↓H␈ε∩Algorithm␈α
S␈εα␈α
(␈ε∂Subtraction␈α
of␈α
nonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πU␈εα)␈ε∩.␈εα␈α≤Giv␈α␈en␈α
nonnegativ␈α␈e␈↓
;␈ελn␈↓
P␈εα-place
␈β%␈↓ ↓H␈εαin␈α␈tegers␈α⊃(␈↓ α↑␈ελu␈↓ β↓␈ελu␈↓ β*␈εα.␈αε.␈αε.␈↓ βZ␈ελu␈↓ ∧␈εα)␈↓ ∧+␈ε⊗∃␈εα␈α∪(␈↓ ∧n␈ελv␈↓ ¬␈ελv␈↓ ¬0␈εα.␈αε.␈αε.␈↓ ¬`␈ελv␈↓ εα␈εα)␈↓ ε~␈εα,␈α∩this␈α∩algorithm␈α⊃forms␈α⊃their␈α⊃nonnegativ␈α␈e
␈β3␈↓ αr␈ε¬1␈↓ β∃␈ε¬2␈↓ βn␈εn␈↓ ∧␈εb␈↓ ∧}␈ε¬1␈↓ ¬≤␈ε¬2␈↓ ¬p␈εn␈↓ ε∞␈εb
␈βQ␈↓ ↓H␈εαdi{erence,␈α(␈↓ β␈ελw␈↓ β&␈ελw␈↓ βR␈εα.␈αε.␈αε.␈↓ ∧α␈ελw␈↓ ∧,␈εα)␈↓ ∧D␈εα.
␈β↑␈↓ β↔␈ε¬1␈↓ β>␈ε¬2␈↓ ∧~␈εn␈↓ ∧8␈εb
␈β ␈↓ ↓P␈ε∩S1.␈↓ α␈εα[Initialize.]␈α→Set␈↓ ∧ ␈ελj␈↓ ∧$␈ε⊗ ␈↓ ∧R␈ελn␈↓ ∧g␈εα,␈↓ ∧⎇␈ελk␈↓ ¬→␈ε⊗ ␈εα␈α
0.
␈βB␈↓ ↓P␈ε∩S2.␈↓ α␈εα[Subtract␈αλdigits.]␈α⊃Set␈↓ ∧[␈ελw␈↓ ¬
␈ε⊗ ␈εα␈α
(␈↓ ¬D␈ελu␈↓ ¬i␈ε⊗␈␈↓ ε⊂␈ελv␈↓ ε0␈εα+␈↓ εW␈ελk␈↓ εi␈εα)␈↓ ε{␈εαmod␈↓ πE␈ελb␈↓ πS␈εα,␈α and␈↓ λ)␈ελk␈↓ λD␈ε⊗ ␈α
b␈εα(␈↓ ␈ελu␈↓ 1␈ε⊗␈␈↓ X␈ελv␈↓ x␈εα+␈↓
␈ελk␈↓
1␈εα)/␈↓
O␈ελb␈↓
↑␈ε⊗c␈εα.␈α
(In
␈βP␈↓ ∧s␈εj␈↓ ¬Y␈εj␈↓ ε ␈εj␈↓ !␈εj␈↓ h␈εj
␈βm␈↓ α␈εαother␈α
w␈α␈ords,␈↓ βX␈ελk␈↓ βt␈εαis␈α
set␈α
to␈ε⊗␈α
␈␈εα1␈α
or␈α
0,␈αdepending␈α
on␈α
whether␈α
a␈α
\borro␈α␈w"␈α
occurs␈α
or
␈β
→␈↓ α␈εαnot,␈αi.e.,␈αwhether␈↓ ∧!␈ελu␈↓ ∧I␈ε⊗␈␈↓ ∧t␈ελv␈↓ ¬↔␈εα+␈↓ ¬A␈ελk␈↓ ¬]␈εα<␈α
0␈αor␈αnot.␈αIn␈αthe␈αcalculation␈αof␈↓ b␈ελw␈↓
π␈εα,␈αnote␈α
that
␈β
&␈↓ ∧6␈εj␈↓ ¬β␈εj␈↓ y␈εj
␈β
D␈↓ α␈εαw␈α␈e␈α m␈α␈ust␈αλhav␈α␈e␈ε⊗␈α ␈␈↓ ∧ ␈ελb␈↓ ∧!␈εα=␈α
0␈ε⊗␈α∧␈␈εα␈αβ(␈↓ ¬_␈ελb␈↓ ¬*␈ε⊗␈␈εα␈αβ1)␈α∧+␈αβ(␈ε⊗␈␈εα1)␈ε⊗␈α
∀␈↓ π ␈ελu␈↓ πF␈ε⊗␈␈↓ πm␈ελv␈↓ λ∞␈εα+␈↓ λ5␈ελk␈↓ λQ␈ε⊗∀␈εα␈α
(␈↓ ␈ελb␈↓ ≥␈ε⊗␈␈εα␈αβ1)␈ε⊗␈α∧␈␈εα␈αβ0␈α∧+␈αβ0␈α
<␈↓ ∀␈ελb␈↓ "␈εα;
␈β
Q␈↓ π5␈εj␈↓ π⎇␈εj
␈β
o␈↓ α␈εαhence␈α0␈ε⊗␈α
∀␈↓ β9␈ελu␈↓ βb␈ε⊗␈␈↓ ∧
␈ελv␈↓ ∧1␈εα+␈↓ ∧\␈ελk␈↓ ∧t␈εα+␈↓ ¬∨␈ελb␈↓ ¬8␈εα<␈α
2␈↓ ¬x␈ελb␈↓ εε␈εα,␈αand␈αthis␈αsuggests␈αthe␈αmethod␈αof␈αcomputer
␈β
|␈↓ βN␈εj␈↓ ∧≥␈εj
␈β∞~␈↓ α␈εαimplemen␈α␈tation␈αexplained␈αbelo␈α␈w.)
␈β∞S␈↓ ↓P␈ε∩S3.␈↓ α␈εα[Loop␈α
on␈↓ β!␈ελj␈↓ β1␈εα.]␈α∃Decrease␈↓ ∧n␈ελj␈↓ ¬ ␈εαby␈α
one.␈αNo␈α␈w␈αif␈↓ εx␈ελj␈↓ π∩␈εα>␈α
0,␈αgo␈α
back␈α
to␈α
step␈αS2;␈α
otherwise
␈β∞}␈↓ α␈εαterminate␈α
the␈α∞algorithm.␈α∂(When␈α∞the␈α
algorithm␈α
terminates,␈α∞w␈α␈e␈α
should␈α
hav␈α␈e
␈β∂)␈↓ α␈ελk␈↓ α)␈εα=␈α0;␈α
the␈α
condition␈↓ ∧`␈ελk␈↓ ∧⎇␈εα=␈ε⊗␈α␈␈εα1␈α
will␈α
occur␈α
if␈α
and␈α
only␈αif␈↓ λr␈ελv␈↓ ⊗␈εα.␈αε.␈αε.␈↓ F␈ελv␈↓ t␈εα>␈↓
#␈ελu␈↓
L␈εα.␈αε.␈αε.␈↓
|␈ελu␈↓ "␈εα,
␈β∂7␈↓ α␈ε¬1␈↓ V␈εn␈↓
8␈ε¬1␈↓ ⊃␈εn
␈β∂U␈↓ α␈εαand␈αthis␈αis␈αcon␈α␈trary␈αto␈αthe␈αgiv␈α␈en␈αassumptions.␈αSee␈αex␈α␈ercise␈α12.)
␈β∂Z␈↓
∪␈∧∂Z
∪≠∂
␈β⊂~␈↓ α␈εαIn␈αa␈ε∃␈αMIX␈εα␈αprogram␈αto␈αimplemen␈α␈t␈αsubtraction,␈αit␈αis␈αmost␈αcon␈α␈v␈α␈enien␈α␈t␈αto␈αretain
␈β⊂F␈↓ ↓H␈εαthe␈αvalue␈α1␈αλ+␈↓ β+␈ελk␈↓ βH␈εαinstead␈αof␈↓ ∧n␈ελk␈↓ ¬␈εαthroughout␈αthe␈αalgorithm,␈αso␈αthat␈αw␈α␈e␈αcan␈αcalculate
␈β⊂q␈↓ ↓H␈ελu␈↓ ↓r␈ε⊗␈␈↓ α≡␈ελv␈↓ αD␈εα+␈αλ(1␈α +␈↓ βC␈ελk␈↓ βU␈εα)␈αλ+␈α (␈↓ ∧"␈ελb␈↓ ∧9␈ε⊗␈␈εα␈αλ1)␈α
in␈α
step␈αS2.␈α∞(Recall␈α
that␈↓ λ∞␈ελb␈↓ λ)␈εαis␈αthe␈α
w␈α␈ord␈α
size.)␈α∞This␈αis
␈β⊂}␈↓ ↓\␈εj␈↓ α.␈εj
␈β⊃≤␈↓ ↓H␈εαillustrated␈αin␈αthe␈αfollo␈α␈wing␈αcode:
␈β∪(
␈β↓Y␈↓ ↓H␈εα250␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα&␈↓ ↓H␈ε∩Program␈αS␈εα␈α(␈ε∂Subtraction␈αof␈αnonnegativ␈α␈e␈αin␈α␈tegers␈↓ π4␈εα)␈ε∩.␈εα␈α_This␈αprogram␈αis␈αanalogous␈αto
␈βαQ␈↓ ↓H␈εαProgram␈α∞A␈↓ αv␈εα;␈α∞w␈α␈e␈α∞hav␈α␈e␈↓ ∧≤␈εαrI␈↓ ∧6␈εα1␈ε⊗␈α∞⊃␈↓ ¬π␈ελj␈↓ ¬↔␈εα,␈↓ ¬0␈εαrA␈↓ ¬e␈ε⊗⊃␈εα␈α
1␈α +␈↓ ε←␈ελk␈↓ εp␈εα.␈α∩Here,␈α∂as␈α∞in␈α∞other␈α∞programs␈α
of␈α∞this
␈βα⎇␈↓ ↓H␈εαsection,␈αlocation␈↓ βP␈ε∃W␈α␈M1␈↓ ∧_␈εαcon␈α␈tains␈αthe␈αconstan␈α␈t␈↓ εq␈ελb␈↓ πε␈ε⊗␈␈εα␈αε1,␈αthe␈αlargest␈αpossible␈αvalue␈α
that
␈ββ(␈↓ ↓H␈εαcan␈αbe␈αstored␈αin␈αa␈ε∃␈αM␈α␈IX␈εα␈αw␈α␈ord;␈αcf.␈αProgram␈α4.2.3D␈↓ πE␈εα,␈αlines␈α38↑39.
␈ββu␈↓ ∧↓␈ε∃EN␈α␈T1␈↓ ∧⎇␈ε∃N
␈ββx␈↓ αl␈ε 0␈α␈1␈↓ ε&␈εβ1␈↓ π¬␈ε⊂S1␈α␈.␈αIn␈α␈i␈α↓tia␈α␈l␈α↓ize.␈↓ λe␈ε j␈↓ λ⎇␈ε↔ ␈↓ (␈ε n␈↓ <␈εβ.
␈β∧∩␈↓ π¬␈∧∧∩π¬α↓?
␈β∧≤␈↓ ∧↓␈ε∃JO␈α␈V␈↓ ∧⎇␈ε∃OFL␈α␈O
␈β∧∨␈↓ αl␈ε 0␈α␈2␈↓ ε&␈εβ1␈↓ π¬␈εβEnsu␈α␈re␈αo␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈αis␈αo{.
␈β∧D␈↓ β.␈ε∃1H␈↓ ∧↓␈ε∃J1␈α␈Z␈↓ ∧⎇␈ε∃DON␈α␈E
␈β∧G␈↓ αl␈ε 0␈α␈3␈↓ ε↓␈ε K␈↓ ε#␈εβ+␈αλ1␈↓ π¬␈εβTermina␈α␈te␈αif␈↓ λG␈ε j␈↓ λ`␈εβ=␈α 0.
␈β∧l␈↓ ∧↓␈ε∃EN␈α␈TA␈↓ ∧⎇␈ε∃1
␈β∧o␈↓ αl␈ε 0␈α␈4␈↓ ε!␈ε K␈↓ π¬␈εβSet␈↓ π?␈ε k␈↓ πX␈ε↔ ␈εβ␈α
0␈α␈.
␈β¬∪␈↓ β.␈ε∃2H␈↓ ∧↓␈ε∃AD␈α␈D␈↓ ∧⎇␈ε∃U,1
␈β¬⊗␈↓ αl␈ε 0␈α␈5␈↓ ε∨␈ε N␈↓ π¬␈ε⊂S2␈α␈.␈αS␈α␈ub␈α␈tract␈αd␈α␈i␈↓ λa␈ε⊂g␈↓ λr␈ε⊂its.
␈β¬0␈↓ π¬␈∧¬0π¬α↓]␈↓ λr␈∧¬0λrα-
␈β¬;␈↓ ∧↓␈ε∃SU␈α␈B␈↓ ∧⎇␈ε∃V,1
␈β¬>␈↓ αl␈ε 0␈α␈6␈↓ ε∨␈ε N␈↓ π¬␈εβComp␈α␈ut␈α␈e␈↓ λ↔␈ε u␈↓ λ>␈ε↔␈␈↓ λg␈ε v␈↓ ␈εβ+␈↓ 2␈ε k␈↓ I␈εβ+␈↓ r␈ε b␈↓ ␈␈εβ.
␈β¬H␈↓ λ+␈εj␈↓ λu␈εj
␈β¬b␈↓ ∧↓␈ε∃AD␈α␈D␈↓ ∧⎇␈ε∃WM1
␈β¬e␈↓ αl␈ε 0␈α␈7␈↓ ε∨␈ε N
␈βε
␈↓ ∧↓␈ε∃ST␈α␈A␈↓ ∧⎇␈ε∃W,1
␈βε
␈↓ αl␈ε 0␈α␈8␈↓ ε∨␈ε N␈↓ π¬␈εβ(May␈α
be␈αm␈α␈i␈α↓n␈α}us␈αze␈α␈ro)
␈βε2␈↓ ∧↓␈ε∃DE␈α␈C1␈↓ ∧⎇␈ε∃1
␈βε5␈↓ αl␈ε 0␈α␈9␈↓ ε∨␈ε N␈↓ π¬␈ε⊂S3␈α␈.␈αLoo␈↓ πt␈ε⊂p␈↓ λ∩␈ε⊂o␈α␈n␈↓ λ@␈ε j␈↓ λO␈ε⊂.
␈βεO␈↓ π¬␈∧εOπ¬αo␈↓ π|␈∧εOπ|αE␈↓ λH␈∧εOλHα⊃
␈βεY␈↓ ∧↓␈ε∃JO␈α␈V␈↓ ∧⎇␈ε∃1B
␈βε\␈↓ αl␈ε 1␈α␈0␈↓ ε∨␈ε N␈↓ π¬␈εβIf␈αo␈α}v␈α␈er⎇␈α␈o␈α␈w,␈αset␈↓ λf␈ε k␈↓ ␈ε↔ ␈εβ␈α 0.
␈βπ↓␈↓ ∧↓␈ε∃EN␈α␈TA␈↓ ∧⎇␈ε∃0
␈βπ∧␈↓ αl␈ε 1␈α␈1␈↓ ¬y␈ε N␈↓ ε ␈ε↔␈␈↓ εH␈ε K␈↓ π¬␈εβOthe␈α␈rwi␈α↓se␈α␈,␈αse␈α␈t␈↓ λ`␈ε k␈↓ λy␈ε↔ ␈α
␈␈εβ1.
␈βπ(␈↓ ∧↓␈ε∃J1␈α␈P␈↓ ∧⎇␈ε∃2B
␈βπ+␈↓ αl␈ε 1␈α␈2␈↓ ¬y␈ε N␈↓ ε ␈ε↔␈␈↓ εH␈ε K␈↓ π¬␈εβBack␈α
to␈αS2␈α␈.
␈βπP␈↓ ∧↓␈ε∃HL␈α␈T␈↓ ∧⎇␈ε∃5
␈βπS␈↓ αl␈ε 1␈α␈3␈↓ π¬␈εβ(E␈α↓r␈α␈ror,␈↓ πr␈ε v␈↓ λ
␈εβ>␈↓ λ8␈ε u␈↓ λL␈εβ)
␈βπU␈↓ λ|␈∧πUλ|≠∂
␈βλ'␈↓ ↓H␈εαThe␈α
running␈α∞time␈α∞for␈α
this␈α∞program␈α∞is␈α∞12␈↓ εL␈ελN␈↓ εv␈εα+␈α 3␈α∞cy␈α␈cles,␈α∞sligh␈α␈tly␈α∞longer␈α∞than␈α
the
␈βλR␈↓ ↓H␈εαcorresponding␈αamoun␈α␈t␈αfor␈αProgram␈αA.
␈βλ}␈↓ α␈εαThe␈αreader␈α
may␈αw␈α␈onder␈αif␈αit␈αw␈α␈ould␈α
not␈αbe␈αw␈α␈orth␈αwhile␈α
to␈αhav␈α␈e␈αa␈αcom␈α␈bined
␈β )␈↓ ↓H␈εαaddition-subtraction␈α⊂routine␈α∂in␈α⊂place␈α⊂of␈α⊂the␈α⊂t␈α␈w␈α␈o␈α⊂algorithms␈α⊂A␈α⊂and␈α⊂S␈↓
≠␈εα.␈α_But␈α∂an
␈β T␈↓ ↓H␈εαexamination␈αλof␈αλthe␈αλcomputer␈αλprograms␈αλsho␈α␈ws␈αλthat␈α it␈αλis␈αλgenerally␈αλbetter␈αλto␈αλuse␈αλt␈α␈w␈α␈o
␈β ␈␈↓ ↓H␈εαdi{eren␈α␈t␈αroutines,␈αso␈αthat␈αthe␈αinner␈αloops␈αof␈αthe␈αcomputations␈αcan␈αbe␈αperformed
␈β
*␈↓ ↓H␈εαas␈αrapidly␈αas␈αpossible,␈αsince␈αthe␈αprograms␈αare␈αso␈αshort.
␈β
a␈↓ α␈εαOur␈α⊂next␈α⊃problem␈α⊂is␈α⊂m␈α␈ultiplication,␈α⊃and␈α⊃here␈α⊂w␈α␈e␈α⊂carry␈α⊃the␈α⊂ideas␈α⊂used␈α⊂in
␈β␈↓ ↓H␈εαAlgorithm␈αA␈αa␈αlittle␈αfurther:
␈βO␈↓ ↓H␈ε∩Algorithm␈α∂M␈εα␈α⊂(␈ε∂Multiplication␈α∂of␈α⊂nonnegativ␈α␈e␈α∂in␈α␈tegers␈↓ λ∀␈εα)␈ε∩.␈εα␈α∨Giv␈α␈en␈α⊂nonnegativ␈α␈e␈α∂in-
␈βz␈↓ ↓H␈εαtegers␈α(␈↓ α;␈ελu␈↓ α↑␈ελu␈↓ βπ␈εα.␈αε.␈αε.␈↓ β7␈ελu␈↓ β]␈εα)␈↓ ∧␈εαand␈α(␈↓ ∧Q␈ελv␈↓ ∧p␈ελv␈↓ ¬∀␈εα.␈αε.␈αε.␈↓ ¬D␈ελv␈↓ ¬m␈εα)␈↓ ε¬␈εα,␈αthis␈αalgorithm␈αforms␈αtheir␈αradix-␈↓
→␈ελb␈↓
2␈εαproduct
␈βπ␈↓ αO␈ε¬1␈↓ αr␈ε¬2␈↓ βK␈εn␈↓ βi␈εb␈↓ ∧a␈ε¬1␈↓ ∧␈␈ε¬2␈↓ ¬S␈εm␈↓ ¬y␈εb
␈β%␈↓ ↓H␈εα(␈↓ ↓T␈ελw␈↓ ↓z␈ελw␈↓ α&␈εα.␈αε.␈αε.␈↓ αV␈ελw␈↓ β6␈εα)␈↓ βN␈εα.␈α(The␈αcon␈α␈v␈α␈en␈α␈tional␈αpencil-and-paper␈αmethod␈αis␈αbased␈αon␈αform-
␈β2␈↓ ↓k␈ε¬1␈↓ α∩␈ε¬2␈↓ αn␈εm␈↓ βλ␈ε¬+␈↓ β%␈εn␈↓ βB␈εb
␈βP␈↓ ↓H␈εαing␈αthe␈αpartial␈αproducts␈α(␈↓ ∧R␈ελu␈↓ ∧u␈ελu␈↓ ¬≡␈εα.␈αε.␈αε.␈↓ ¬N␈ελu␈↓ ¬u␈εα)␈ε⊗␈αεα␈↓ ε2␈ελv␈↓ εZ␈εα|rst,␈αfor␈α1␈ε⊗␈α
∀␈↓ λ/␈ελj␈↓ λI␈ε⊗∀␈↓ λw␈ελm␈↓ ↔␈εα,␈αand␈αthen␈αadding
␈β↑␈↓ ∧g␈ε¬1␈↓ ¬
␈ε¬2␈↓ ¬c␈εn␈↓ εB␈εj
␈β{␈↓ ↓H␈εαthese␈α
products␈α∞together␈α∞with␈α∞appropriate␈α∞scale␈α∞factors;␈α∞but␈α∞in␈α∞a␈α∞computer␈α∞it␈α
is
␈β
'␈↓ ↓H␈εαbest␈α
to␈αdo␈α
the␈αaddition␈α
concurren␈α␈tly␈αwith␈α
the␈αm␈α␈ultiplication,␈αas␈α
described␈αin␈α
this
␈β
R␈↓ ↓H␈εαalgorithm.)
␈β∞ ␈↓ ↓D␈ε∩M1.␈↓ α␈εα[Initialize.]␈α~Set␈↓ ∧
␈ελw␈↓ ∧g␈εα,␈↓ ∧⎇␈ελw␈↓ ¬Z␈εα,␈↓ ¬p␈εα.␈αε.␈αε.␈↓ ε ␈εα,␈↓ ε6␈ελw␈↓ π#␈εαall␈αto␈αzero.␈α
Set␈↓ ⊗␈ελj␈↓ 1␈ε⊗ ␈↓ ←␈ελm␈↓ ␈␈εα.␈α(If␈↓
F␈ελw␈↓ "␈εα,
␈β∞⊗␈↓ ∧"␈εm␈↓ ∧;␈ε¬+1␈↓ ¬∃␈εm␈↓ ¬/␈ε¬+␈α␈2␈↓ εN␈εm␈↓ εh␈ε¬+␈↓ π¬␈εn␈↓
]␈εm␈↓
w␈ε¬+1
␈β∞4␈↓ α␈εα.␈αε.␈αε.␈↓ α<␈εα,␈↓ αS␈ελw␈↓ β?␈εαw␈α␈ere␈α
not␈αcleared␈α
to␈αzero␈α
in␈αthis␈α
step,␈αit␈α
turns␈αout␈α
that␈αthe␈αsteps
␈β∞A␈↓ αj␈εm␈↓ β∧␈ε¬+␈↓ β!␈εn
␈β∞←␈↓ α␈εαbelo␈α␈w␈αw␈α␈ould␈αset
␈β∂6␈↓ αi␈εα(␈↓ αu␈ελw␈↓ β!␈εα.␈αε.␈αε.␈↓ βQ␈ελw␈↓ ∧1␈εα)␈↓ ∧S␈ε⊗ ␈εα␈α
(␈↓ ¬
␈ελu␈↓ ¬6␈εα.␈αε.␈αε.␈↓ ¬f␈ελu␈↓ ε
␈εα)␈↓ ε-␈ε⊗α␈εα␈αλ(␈↓ εe␈ελv␈↓ π ␈εα.␈αε.␈αε.␈↓ π9␈ελv␈↓ πc␈εα)␈↓ λβ␈εα+␈αλ(␈↓ λ;␈ελw␈↓ ≥␈εα.␈αε.␈αε.␈↓ M␈ελw␈↓
.␈εα)␈↓
F␈εα.
␈β∂C␈↓ β␈ε¬1␈↓ βi␈εm␈↓ ∧α␈ε¬+␈↓ ∧∨␈εn␈↓ ∧=␈εb␈↓ ¬"␈ε¬1␈↓ ¬{␈εn␈↓ ε→␈εb␈↓ εt␈ε¬1␈↓ πI␈εm␈↓ πo␈εb␈↓ λR␈εm␈↓ λl␈ε¬+1␈↓ e␈εm␈↓ ␈␈ε¬+␈↓
≤␈εn␈↓
:␈εb
␈β⊂
␈↓ α␈εαThis␈αmore␈αgeneral␈αoperation␈αis␈αsometimes␈αuseful.)
␈β⊂D␈↓ ↓D␈ε∩M2.␈↓ α␈εα[Zero␈α
m␈α␈ultiplier?]␈α∪If␈↓ ∧L␈ελv␈↓ ∧s␈εα=␈α
0,␈α
set␈↓ ¬|␈ελw␈↓ ε+␈ε⊗ ␈εα␈α
0␈α
and␈α
go␈α to␈α
step␈α M6.␈α(This␈α test␈α
sav␈α␈es␈α a
␈β⊂Q␈↓ ∧[␈εj␈↓ ε∀␈εj
␈β⊂o␈↓ α␈εαgood␈α deal␈α of␈α time␈α
if␈α there␈α is␈α a␈α reasonable␈α chance␈α that␈↓ λ>␈ελv␈↓ λe␈εαis␈α zero,␈α but␈α otherwise
␈β⊂|␈↓ λN␈εj
␈β⊃~␈↓ α␈εαit␈αmay␈αbe␈αomitted␈αwithout␈αa{ecting␈αthe␈αvalidity␈αof␈αthe␈αalgorithm.)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα251
␈βα≥␈↓ ¬{␈ε≥Ta␈α␈b␈α↓le␈α
1
␈βαQ␈↓ ∧2␈εβMUL␈α⎇T␈α↓IPLICA␈α⎇T␈α↓ION␈αO␈α␈F␈α9␈α␈14␈αBY␈α84␈α␈.
␈βα⎇␈↓ β7␈∧α⎇β7(α␈↓ εw␈∧α⎇εw(α
␈ββ∧␈↓ α@␈εβS␈α␈tep␈↓ βp␈ε i␈↓ ∧6␈ε j␈↓ ∧{␈ε u␈↓ ¬O␈ε v␈↓ ε+␈ε t␈↓ π/␈ε w␈↓ λπ␈ε w␈↓ λ`␈ε w␈↓ 9␈ε w␈↓
⊃␈ε w
␈ββ∞␈↓ ¬∂␈εi␈↓ ¬↑␈εj␈↓ πE␈εε1␈↓ λ≥␈εε2␈↓ λv␈εε3␈↓ O␈εε4␈↓
(␈εε5
␈ββ$␈↓ β7␈∧β$β7λα␈↓ εw␈∧β$εwλα
␈ββ+␈↓ β7␈∧β+β7(α␈↓ εw␈∧β+εw(α
␈ββ2␈↓ αI␈εβM5␈↓ βn␈εβ3␈↓ ∧5␈εβ2␈↓ ¬α␈εβ4␈↓ ¬T␈εβ4␈↓ ε ␈εβ16␈↓ π7␈ε x␈↓ λ⊂␈ε x␈↓ λi␈εβ0␈↓ B␈εβ0␈↓
~␈εβ6
␈ββS␈↓ β7␈∧βSβ7(α␈↓ εw␈∧βSεw(α
␈ββZ␈↓ αI␈εβM5␈↓ βn␈εβ2␈↓ ∧5␈εβ2␈↓ ¬α␈εβ1␈↓ ¬T␈εβ4␈↓ ε ␈εβ05␈↓ π7␈ε x␈↓ λ⊂␈ε x␈↓ λi␈εβ0␈↓ B␈εβ5␈↓
~␈εβ6
␈ββ{␈↓ β7␈∧β{β7(α␈↓ εw␈∧β{εw(α
␈β∧α␈↓ αI␈εβM5␈↓ βn␈εβ1␈↓ ∧5␈εβ2␈↓ ¬α␈εβ9␈↓ ¬T␈εβ4␈↓ ε ␈εβ36␈↓ π7␈ε x␈↓ λ⊂␈ε x␈↓ λi␈εβ6␈↓ B␈εβ5␈↓
~␈εβ6
␈β∧"␈↓ β7␈∧∧"β7(α␈↓ εw␈∧∧"εw(α
␈β∧)␈↓ αI␈εβM6␈↓ βn␈εβ0␈↓ ∧5␈εβ2␈↓ ¬α␈ε x␈↓ ¬T␈εβ4␈↓ ε ␈εβ36␈↓ π7␈ε x␈↓ λ⊂␈εβ3␈↓ λi␈εβ6␈↓ B␈εβ5␈↓
~␈εβ6
␈β∧J␈↓ β7␈∧∧Jβ7(α␈↓ εw␈∧∧Jεw(α
␈β∧Q␈↓ αI␈εβM5␈↓ βn␈εβ3␈↓ ∧5␈εβ1␈↓ ¬α␈εβ4␈↓ ¬T␈εβ8␈↓ ε ␈εβ37␈↓ π7␈ε x␈↓ λ⊂␈εβ3␈↓ λi␈εβ6␈↓ B␈εβ7␈↓
~␈εβ6
␈β∧q␈↓ β7␈∧∧qβ7(α␈↓ εw␈∧∧qεw(α
␈β∧x␈↓ αI␈εβM5␈↓ βn␈εβ2␈↓ ∧5␈εβ1␈↓ ¬α␈εβ1␈↓ ¬T␈εβ8␈↓ ε ␈εβ17␈↓ π7␈ε x␈↓ λ⊂␈εβ3␈↓ λi␈εβ7␈↓ B␈εβ7␈↓
~␈εβ6
␈β¬→␈↓ β7␈∧¬→β7(α␈↓ εw␈∧¬→εw(α
␈β¬ ␈↓ αI␈εβM5␈↓ βn␈εβ1␈↓ ∧5␈εβ1␈↓ ¬α␈εβ9␈↓ ¬T␈εβ8␈↓ ε ␈εβ76␈↓ π7␈ε x␈↓ λ⊂␈εβ6␈↓ λi␈εβ7␈↓ B␈εβ7␈↓
~␈εβ6
␈β¬A␈↓ β7␈∧¬Aβ7(α␈↓ εw␈∧¬Aεw(α
␈β¬H␈↓ αI␈εβM6␈↓ βn␈εβ0␈↓ ∧5␈εβ1␈↓ ¬α␈ε x␈↓ ¬T␈εβ8␈↓ ε ␈εβ76␈↓ π8␈εβ7␈↓ λ⊂␈εβ6␈↓ λi␈εβ7␈↓ B␈εβ7␈↓
~␈εβ6
␈βε7␈↓ ↓D␈ε∩M3.␈↓ α␈εα[Initialize␈↓ β*␈ελi␈↓ β8␈εα.]␈α→Set␈↓ ∧#␈ελi␈↓ ∧;␈ε⊗ ␈↓ ∧i␈ελn␈↓ ∧␈␈εα,␈↓ ¬∃␈ελk␈↓ ¬1␈ε⊗ ␈εα␈α
0.
␈βεj␈↓ ↓D␈ε∩M4.␈↓ α␈εα[Multiply␈αand␈αadd.]␈α→Set␈↓ ¬∃␈ελt␈↓ ¬,␈ε⊗ ␈↓ ¬Z␈ελu␈↓ εα␈ε⊗α␈↓ ε.␈ελv␈↓ εS␈εα+␈↓ ε␈␈ελw␈↓ πT␈εα+␈↓ λ␈ελk␈↓ λ∩␈εα;␈αthen␈αset␈↓ 2␈ελw␈↓
␈ε⊗ ␈↓
7␈ελt␈↓
J␈εαmod␈↓ ∀␈ελb␈↓ "␈εα,
␈βεx␈↓ ¬o␈εi␈↓ ε>␈εj␈↓ π↔␈εi␈↓ π"␈ε¬+␈↓ π?␈εj␈↓ J␈εi␈↓ U␈ε¬+␈↓ r␈εj
␈βπ∃␈↓ α␈ελk␈↓ α*␈ε⊗ ␈αb␈↓ αh␈ελt␈↓ αu␈εα/␈↓ βπ␈ελb␈↓ β∃␈ε⊗c␈εα.␈α⊂(Here␈α∞the␈α
\carry"␈↓ ¬a␈ελk␈↓ ε␈εαwill␈α
always␈α∞be␈α
in␈α
the␈α∞range␈α
0␈ε⊗␈α∀␈↓
␈ελk␈↓
(␈εα<␈↓
X␈ελb␈↓
g␈εα;␈α
see
␈βπA␈↓ α␈εαbelo␈α␈w.)
␈βπt␈↓ ↓D␈ε∩M5.␈↓ α␈εα[Loop␈α
on␈↓ β ␈ελi␈↓ β.␈εα.]␈α∀Decrease␈↓ ∧j␈ελi␈↓ ¬α␈εαby␈α
one.␈αNo␈α␈w␈α
if␈↓ εp␈ελi␈↓ πλ␈εα>␈α
0,␈α
go␈α
back␈α
to␈α
step␈α
M4;␈α
otherwise
␈βλ∨␈↓ α␈εαset␈↓ αD␈ελw␈↓ αs␈ε⊗ ␈↓ β!␈ελk␈↓ β3␈εα.
␈βλ,␈↓ α\␈εj
␈βλR␈↓ ↓D␈ε∩M6.␈↓ α␈εα[Loop␈α on␈↓ β∨␈ελj␈↓ β/␈εα.]␈α∪Decrease␈↓ ∧j␈ελj␈↓ ¬∧␈εαby␈α one.␈αNo␈α␈w␈α
if␈↓ εp␈ελj␈↓ π
␈εα>␈α
0,␈α
go␈α
back␈α to␈α
step␈α M2;␈α
otherwise
␈βλ⎇␈↓ α␈εαthe␈αalgorithm␈αterminates.
␈β α␈↓ ¬F␈∧ α¬F≠∂
␈β 8␈↓ α␈εαAlgorithm␈α∂M␈α∞is␈α∂illustrated␈α∞in␈α∂Table␈α∞1,␈α∂assuming␈α∂that␈↓ λm␈ελb␈↓
␈εα=␈α∞10,␈α∂by␈α∞sho␈α␈wing
␈β c␈↓ ↓H␈εαthe␈αstates␈αof␈α
the␈αcomputation␈α
at␈αthe␈αbeginning␈α
of␈αsteps␈α
M5␈αand␈αM6.␈α∞A␈αproof␈αof
␈β
∞␈↓ ↓H␈εαAlgorithm␈αM␈αappears␈αin␈αthe␈αansw␈α␈er␈αto␈αex␈α␈ercise␈α14.
␈β
:␈↓ α␈εαThe␈αt␈α␈w␈α␈o␈αinequalities
␈β
|␈↓ ε∧␈ε¬2
␈βα␈↓ ∧g␈εα0␈ε⊗␈α
∀␈↓ ¬1␈ελt␈↓ ¬H␈ε⊗∀␈↓ ¬v␈ελb␈↓ ε∪␈εα,␈↓ εk0␈ε⊗␈α
∀␈↓ π5␈ελk␈↓ πQ␈εα<␈↓ π␈␈ελb␈↓ α␈εα(1)
␈βK␈↓ ↓H␈εαare␈α
crucial␈α
for␈αan␈α
e}cien␈α␈t␈α
implemen␈α␈tation␈α
of␈αthis␈α
algorithm,␈αsince␈α
they␈α
poin␈α␈t␈α
out
␈βw␈↓ ↓H␈εαho␈α␈w␈α
large␈α
a␈α
register␈α
is␈α
needed␈α
for␈α∞the␈α
computations.␈α∂These␈α
inequalities␈α
may␈α
be
␈β"␈↓ ↓H␈εαpro␈α␈v␈α␈ed␈αby␈αinduction␈αas␈αthe␈αalgorithm␈αproceeds,␈αfor␈αif␈αw␈α␈e␈αhav␈α␈e␈↓ ↔␈ελk␈↓ 3␈εα<␈↓ a␈ελb␈↓ z␈εαat␈αthe␈αstart
␈βM␈↓ ↓H␈εαof␈αstep␈αM4,␈αw␈α␈e␈αhav␈α␈e
␈β
⊂␈↓ b␈ε¬2␈↓
⎇␈ε¬2
␈β
⊗␈↓ ↓←␈ελu␈↓ απ␈ε⊗α␈↓ α3␈ελv␈↓ αX␈εα+␈↓ β∧␈ελw␈↓ βY␈εα+␈↓ ∧¬␈ελk␈↓ ∧!␈ε⊗∀␈εα␈α
(␈↓ ∧[␈ελb␈↓ ∧q␈ε⊗␈␈εα␈αλ1)␈ε⊗␈αλα␈εα␈αλ(␈↓ ¬{␈ελb␈↓ ε⊃␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ π≠␈ελb␈↓ π2␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ λ<␈ελb␈↓ λR␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ T␈ελb␈↓ y␈ε⊗␈␈εα␈αλ1␈α
<␈↓
o␈ελb␈↓ ␈εα.
␈β
#␈↓ ↓s␈εi␈↓ αB␈εj␈↓ β≠␈εi␈↓ β'␈ε¬+␈↓ βD␈εj
␈β
←␈↓ α␈εαThe␈αλfollo␈α␈wing␈ε∃␈αλMIX␈εα␈απprogram␈αλsho␈α␈ws␈αλthe␈αλconsiderations␈αλthat␈αλare␈αλnecessary␈αλwhen
␈β∞
␈↓ ↓H␈εαAlgorithm␈αM␈α
is␈αimplemen␈α␈ted␈αon␈αa␈αcomputer.␈αThe␈αcoding␈αfor␈αstep␈αM4␈αw␈α␈ould␈αbe␈α
a
␈β∞5␈↓ ↓H␈εαlittle␈αsimpler␈αif␈αour␈αcomputer␈αhad␈αa␈α\m␈α␈ultiply-and-add"␈αinstruction,␈αor␈αif␈αit␈αhad
␈β∞`␈↓ ↓H␈εαa␈αdouble-length␈αaccum␈α␈ulator␈αfor␈αaddition.
␈β∂≠␈↓ ↓H␈ε∩Program␈α
M.␈εα␈α
(␈ε∂Multiplication␈α
of␈α
nonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πh␈εα)␈ε∩.␈εα␈α∀This␈α
program␈α
is␈α
analogous
␈β∂F␈↓ ↓H␈εαto␈αProgram␈αA␈↓ β ␈εα.␈↓ β6␈εαrI␈↓ βP␈εα1␈ε⊗␈α
⊃␈↓ ∧~␈ελi␈↓ ∧(␈εα,␈↓ ∧>␈εαrI␈↓ ∧X␈εα2␈ε⊗␈α
⊃␈↓ ¬"␈ελj␈↓ ¬2␈εα,␈↓ ¬H␈εαrI␈↓ ¬b␈εα3␈ε⊗␈α
⊃␈↓ ε,␈ελi␈↓ εB␈εα+␈↓ εn␈ελj␈↓ ε}␈εα,␈↓ π∀␈ε∃CON␈α␈TEN␈α␈TS(␈α␈CARR␈α␈Y)␈↓ U␈ε⊗⊃␈↓
β␈ελk␈↓
∀␈εα.
␈β∂}␈↓ αo␈ε∃EN␈α␈T1␈↓ βk␈ε∃N
␈β⊂↓␈↓ ↓Z␈ε 0␈α␈1␈↓ ¬C␈εβ1␈↓ ε<␈ε⊂M1.␈αInitialize.
␈β⊂≠␈↓ ε<␈∧⊂≠ε<α↓J
␈β⊂%␈↓ αo␈ε∃JO␈α␈V␈↓ βk␈ε∃OFL␈α␈O
␈β⊂(␈↓ ↓Z␈ε 0␈α␈2␈↓ ¬C␈εβ1␈↓ ε<␈εβE␈α↓n␈α␈sur␈α␈e␈αo␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈αis␈αo{.
␈β⊂M␈↓ αo␈ε∃ST␈α␈Z␈↓ βk␈ε∃W+M␈α␈,1
␈β⊂P␈↓ ↓Z␈ε 0␈α␈3␈↓ ¬<␈ε N␈↓ ε<␈ε w␈↓ π↔␈ε↔ ␈εβ␈α 0.
␈β⊂Z␈↓ εR␈εm␈↓ εj␈εε+␈↓ πβ␈εi
␈β⊂t␈↓ αo␈ε∃DE␈α␈C1␈↓ βk␈ε∃1
␈β⊂w␈↓ ↓Z␈ε 0␈α␈4␈↓ ¬<␈ε N
␈β⊃≤␈↓ αo␈ε∃J1␈α␈P␈↓ βk␈ε∃*-2
␈β⊃∨␈↓ ↓Z␈ε 0␈α␈5␈↓ ¬<␈ε N␈↓ ε<␈εβRepe␈α␈at␈αfor␈↓ πb␈ε n␈↓ π␈␈ε↔∃␈↓ λ*␈ε i␈↓ λ@␈εβ>␈α 0.
␈β∪(
␈β↓Y␈↓ ↓H␈εα252␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα(␈↓ αo␈ε∃EN␈α␈T2␈↓ βk␈ε∃M
␈βα+␈↓ ↓Z␈ε 0␈α␈6␈↓ ¬C␈εβ1␈↓ ε<␈ε j␈↓ εU␈ε↔ ␈↓ ε␈␈ε m␈↓ π≤␈εβ.
␈βαP␈↓ α≤␈ε∃1H␈↓ αo␈ε∃LD␈α␈X␈↓ βk␈ε∃V,2
␈βαS␈↓ ↓Z␈ε 0␈α␈7␈↓ ¬:␈ε M␈↓ ε<␈ε⊂M2.␈αZero␈αm␈α␈u␈α␈lti␈↓ λ_␈ε⊂p␈↓ λ*␈ε⊂li␈α↓e␈α␈r?
␈βαm␈↓ ε<␈∧αmε<α↓\␈↓ λ∨␈∧αmλ∨αG
␈βαw␈↓ αo␈ε∃JX␈α␈Z␈↓ βk␈ε∃8F
␈βαz␈↓ ↓Z␈ε 0␈α␈8␈↓ ¬:␈ε M␈↓ ε<␈εβIf␈↓ ε↑␈ε v␈↓ πα␈εβ=␈α 0,␈αset␈↓ λ¬␈ε w␈↓ λ0␈ε↔ ␈εβ␈α
0␈αa␈α␈nd␈α
go␈αto␈αM␈α␈6.
␈ββ¬␈↓ εl␈εj␈↓ λ≠␈εj
␈ββ∨␈↓ αo␈ε∃EN␈α␈T1␈↓ βk␈ε∃N
␈ββ"␈↓ ↓Z␈ε 0␈α␈9␈↓ ¬↔␈ε M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε Z␈↓ ε<␈ε⊂M3.␈αInitialize␈αi.
␈ββ<␈↓ ε<␈∧β<ε<α↓←
␈ββF␈↓ αo␈ε∃EN␈α␈T3␈↓ βk␈ε∃N,2
␈ββI␈↓ ↓Z␈ε 1␈α␈0␈↓ ¬↔␈ε M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε Z␈↓ ε<␈ε i␈↓ εR␈ε↔ ␈↓ ε⎇␈ε n␈↓ π⊃␈εβ,␈α(␈↓ π0␈ε i␈↓ πE␈εβ+␈↓ πm␈ε j␈↓ π|␈εβ)␈ε↔␈α
␈εβ␈α (␈↓ λF␈ε n␈↓ λb␈εβ+␈↓
␈ε j␈↓ →␈εβ).
␈ββn␈↓ αo␈ε∃EN␈α␈TX␈↓ βk␈ε∃0
␈ββq␈↓ ↓Z␈ε 1␈α␈1␈↓ ¬↔␈ε M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε Z␈↓ ε<␈ε k␈↓ εV␈ε↔ ␈εβ␈α
0␈α␈.
␈β∧⊗␈↓ α≤␈ε∃2H␈↓ αo␈ε∃ST␈α␈X␈↓ βk␈ε∃CAR␈α␈RY
␈β∧→␈↓ ↓Z␈ε 1␈α␈2␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈ε⊂M4.␈αMu␈α␈lti␈↓ πO␈ε⊂p␈↓ πa␈ε⊂l␈↓ πj␈ε⊂y␈↓ λλ␈ε⊂an␈α␈d␈αa␈α␈dd␈α␈.
␈β∧3␈↓ ε<␈∧∧3ε<α↓∪␈↓ πV␈∧∧3πVα_␈↓ πv␈∧∧3πvα↓∩
␈β∧=␈↓ αo␈ε∃LD␈α␈A␈↓ βk␈ε∃U,1
␈β∧@␈↓ ↓Z␈ε 1␈α␈3␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈ε u
␈β∧K␈↓ εP␈εi
␈β∧e␈↓ αo␈ε∃MU␈α␈L␈↓ βk␈ε∃V,2
␈β∧h␈↓ ↓Z␈ε 1␈α␈4␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε↑␈ε↔α␈↓ ε␈␈ε v␈↓ π#␈ε↔!␈↓ πN␈εβr␈α␈A␈α↓X␈↓ λ␈εβ.
␈β∧r␈↓ π∞␈εj
␈β¬␈↓ αo␈ε∃SL␈α␈C␈↓ βk␈ε∃5
␈β¬∂␈↓ ↓Z␈ε 1␈α␈5␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβIn␈α␈terch␈α␈an␈α␈ge␈↓ πq␈εβrA␈↓ λ∨␈ε↔$␈↓ λJ␈εβrX␈↓ λo␈εβ.
␈β¬4␈↓ αo␈ε∃AD␈α␈D␈↓ βk␈ε∃W,3
␈β¬7␈↓ ↓Z␈ε 1␈α␈6␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβAdd␈↓ π¬␈ε w␈↓ πV␈εβto␈α
l␈α↓o␈α}w␈α␈er␈αha␈α␈l␈α↓f.
␈β¬B␈↓ π≠␈εi␈↓ π%␈εε+␈↓ π>␈εj
␈β¬\␈↓ αo␈ε∃JN␈α␈OV␈↓ βk␈ε∃*+2
␈β¬←␈↓ ↓Z␈ε 1␈α␈7␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβDi␈α↓d␈α
o␈α␈v␈α}er⎇o␈α}w␈αo␈α␈ccu␈α␈r?
␈βεβ␈↓ αo␈ε∃IN␈α␈CX␈↓ βk␈ε∃1
␈βεε␈↓ ↓Z␈ε 1␈α␈8␈↓ ¬>␈ε K␈↓ ε<␈εβIf␈αso␈α␈,␈αc␈α␈arry␈αo␈α␈ne␈αin␈α}to␈αup␈α␈pe␈α␈r␈αh␈α␈alf.
␈βε+␈↓ αo␈ε∃AD␈α␈D␈↓ βk␈ε∃CAR␈α␈RY
␈βε.␈↓ ↓Z␈ε 1␈α␈9␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβAdd␈↓ π¬␈ε k␈↓ π ␈εβto␈αlo␈α␈w␈α␈er␈αh␈α␈alf.
␈βεR␈↓ αo␈ε∃JN␈α␈OV␈↓ βk␈ε∃*+2
␈βεU␈↓ ↓Z␈ε 2␈α␈0␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβDi␈α↓d␈α
o␈α␈v␈α}er⎇o␈α}w␈αo␈α␈ccu␈α␈r?
␈βεy␈↓ ¬V␈ε~0
␈βεz␈↓ αo␈ε∃IN␈α␈CX␈↓ βk␈ε∃1
␈βε⎇␈↓ ↓Z␈ε 2␈α␈1␈↓ ¬;␈ε K␈↓ ε<␈εβIf␈αso␈α␈,␈αc␈α␈arry␈αo␈α␈ne␈αin␈α}to␈αup␈α␈pe␈α␈r␈αh␈α␈alf.
␈βπ"␈↓ αo␈ε∃ST␈α␈A␈↓ βk␈ε∃W,3
␈βπ%␈↓ ↓Z␈ε 2␈α␈2␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈ε w␈↓ π␈ε↔ ␈↓ π6␈ε t␈↓ πH␈εβm␈α␈od␈↓ λ␈ε b␈↓ λ→␈εβ.
␈βπ/␈↓ εR␈εi␈↓ ε]␈εε+␈↓ εv␈εj
␈βπI␈↓ αo␈ε∃DE␈α␈C1␈↓ βk␈ε∃1
␈βπL␈↓ ↓Z␈ε 2␈α␈3␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈ε⊂M5.␈αLoo␈↓ π6␈ε⊂p␈↓ πT␈ε⊂on␈↓ λα␈ε i␈↓ λ∂␈ε⊂.
␈βπf␈↓ ε<␈∧πfε<α{␈↓ π>␈∧πfπ>α[
␈βπq␈↓ αo␈ε∃DE␈α␈C3␈↓ βk␈ε∃1
␈βπt␈↓ ↓Z␈ε 2␈α␈4␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβDecrea␈α␈se␈↓ πG␈ε i␈↓ π←␈εβan␈α␈d␈α(␈↓ λ+␈ε i␈↓ λ?␈εβ+␈↓ λh␈ε j␈↓ λw␈εβ)␈αb␈α␈y␈αon␈α␈e.
␈βλ_␈↓ αo␈ε∃J1␈α␈P␈↓ βk␈ε∃2B
␈βλ≠␈↓ ↓Z␈ε 2␈α␈5␈↓ ∧|␈εβ(␈↓ ¬π␈ε M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε N␈↓ ε<␈εβB␈α↓a␈α␈ck␈αto␈α
M4␈αif␈↓ λ⊃␈ε i␈↓ λ'␈εβ>␈α
0␈α␈;␈↓ λw␈εβrX␈↓ %␈εβ=␈ε↔␈α
b␈↓ \␈ε t␈↓ h␈εβ/␈↓ y␈ε b␈↓
ε␈ε↔c␈εβ.
␈βλ@␈↓ α≤␈ε∃8H␈↓ αo␈ε∃ST␈α␈X␈↓ βk␈ε∃W,2
␈βλC␈↓ ↓Z␈ε 2␈α␈6␈↓ ¬:␈ε M␈↓ ε<␈εβSet␈↓ εv␈ε w␈↓ π!␈ε↔ ␈↓ πL␈ε k␈↓ π\␈εβ.
␈βλN␈↓ π␈εj
␈βλh␈↓ αo␈ε∃DE␈α␈C2␈↓ βk␈ε∃1
␈βλk␈↓ ↓Z␈ε 2␈α␈7␈↓ ¬:␈ε M␈↓ ε<␈ε⊂M6.␈αLoo␈↓ π6␈ε⊂p␈↓ πT␈ε⊂on␈↓ λα␈ε j␈↓ λ⊃␈ε⊂.
␈β ¬␈↓ ε<␈∧ ¬ε<α{␈↓ π>␈∧ ¬π>αE␈↓ λ
␈∧ ¬λ
α⊃
␈β ∂␈↓ αo␈ε∃J2␈α␈P␈↓ βk␈ε∃1B
␈β ∩␈↓ ↓Z␈ε 2␈α␈8␈↓ ¬:␈ε M␈↓ ε<␈εβRepe␈α␈at␈αun␈α}til␈↓ π⎇␈ε j␈↓ λ∃␈εβ=␈α
0␈α␈.
␈β ∀␈↓ λ}␈∧ ∀λ}≠∂
␈β V␈↓ α␈εαThe␈α
ex␈α␈ecution␈αtime␈α
of␈αProgram␈α
M␈αdepends␈α
on␈α
the␈αn␈α␈um␈α␈ber␈α
of␈αplaces,␈↓
R␈ελM␈↓
x␈εα,␈αin
␈β
↓␈↓ ↓H␈εαthe␈α∂m␈α␈ultiplier␈↓ β1␈ελv␈↓ βC␈εα;␈α⊃the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂places,␈↓ εH␈ελN␈↓ εj␈εα,␈α⊂in␈α∂the␈α∞m␈α␈ultiplicand␈↓ E␈ελu␈↓ [␈εα;␈α⊂the␈α∂n␈α␈um␈α␈ber
␈β
'␈↓ j␈ε→0
␈β
,␈↓ ↓H␈εαof␈α
zeros,␈↓ αY␈ελZ␈↓ αr␈εα,␈α∞in␈α
the␈α∞m␈α␈ultiplier;␈α∞and␈α
the␈α∞n␈α␈um␈α␈ber␈α
of␈α∞carries,␈↓ λY␈ελK␈↓ ¬␈εαand␈↓ L␈ελK␈↓ q␈εα,␈α∞that␈α
occur
␈β
W␈↓ ↓H␈εαduring␈αthe␈α
addition␈αto␈α
the␈α
lo␈α␈w␈α␈er␈αhalf␈α
of␈αthe␈α
product␈αin␈α
the␈α
computation␈αof␈↓
p␈ελt␈↓
⎇␈εα.␈α
If
␈β
}␈↓ ¬)␈ε→0
␈ββ␈↓ ↓H␈εαw␈α␈e␈α
appro␈α␈ximate␈αboth␈↓ ∧≡␈ελK␈↓ ∧F␈εαand␈↓ ¬␈ελK␈↓ ¬;␈εαby␈αthe␈α
reasonable␈α(although␈αsomewhat␈α
pessimis-
␈β+␈↓ αy␈ε¬1
␈β.␈↓ ↓H␈εαtic)␈αvalues␈↓ β␈εα(␈↓ β↔␈ελM␈↓ βD␈ε⊗␈␈↓ βp␈ελZ␈↓ ∧ ␈εα)␈↓ ∧∃␈ελN␈↓ ∧7␈εα,␈αw␈α␈e␈α|nd␈αthat␈αthe␈αtotal␈αrunning␈αtime␈αcomes␈αto␈α28␈↓
:␈ελM␈↓
←␈ελN␈↓ λ␈εα+
␈β>␈↓ αy␈∧>αyα∂
␈βA␈↓ αy␈ε¬2
␈βY␈↓ ↓H␈εα10␈↓ ↓l␈ελM␈↓ α_␈εα+␈απ4␈↓ αU␈ελN␈↓ α⎇␈εα+␈απ3␈ε⊗␈απ␈␈↓ βl␈ελZ␈↓ ∧¬␈εα(28␈↓ ∧5␈ελN␈↓ ∧]␈εα+␈απ3)␈αcy␈α␈cles.␈αIf␈αstep␈αM2␈αw␈α␈ere␈αdeleted,␈αthe␈αrunning␈αtime
␈β∧␈↓ ↓H␈εαw␈α␈ould␈α
be␈α28␈↓ βα␈ελM␈↓ β(␈ελN␈↓ βP␈εα+␈αε7␈↓ ∧␈ελM␈↓ ∧8␈εα+␈αε4␈↓ ∧t␈ελN␈↓ ¬≤␈εα+␈αε3␈αcy␈α␈cles,␈αso␈αthis␈αstep␈α
is␈αnot␈αadvan␈α␈tageous␈α
unless
␈β/␈↓ ↓H␈εαthe␈α∞density␈α∞of␈α∂zero␈α∞positions␈α∞within␈α∂the␈α∞m␈α␈ultiplier␈α∞is␈↓ λ≤␈ελZ␈↓ λ5␈εα/␈↓ λG␈ελM␈↓ λ{␈εα>␈α∞3/(28␈↓
↓␈ελN␈↓
,␈εα+␈α 3).␈α∪If
␈β[␈↓ ↓H␈εαthe␈αm␈α␈ultiplier␈αis␈αchosen␈αcompletely␈αat␈αrandom,␈αthis␈αratio␈↓ λH␈ελZ␈↓ λb␈εα/␈↓ λt␈ελM␈↓ %␈εαis␈αexpected␈αto␈αbe
␈β
ε␈↓ ↓H␈εαonly␈αabout␈α
1/␈↓ β∨␈ελb␈↓ β.␈εα,␈αwhich␈αis␈αextremely␈αsmall;␈αso␈αstep␈αM2␈αis␈αusually␈ε∂␈αnot␈εα␈αw␈α␈orth␈α
while,
␈β
1␈↓ ↓H␈εαunless␈↓ α2␈ελb␈↓ αL␈εαis␈αsmall.
␈β
]␈↓ α␈εαAlgorithm␈α∂M␈α∂is␈α∂not␈α∞the␈α∂fastest␈α∂way␈α∂to␈α∂m␈α␈ultiply␈α∂when␈↓ λ|␈ελm␈↓ *␈εαand␈↓ s␈ελn␈↓
_␈εαare␈α∞large,
␈β∞λ␈↓ ↓H␈εαalthough␈α
it␈α
has␈α
the␈α∞advan␈α␈tage␈α
of␈α
simplicity.␈α⊂Speedier␈α
methods␈α
are␈α
discussed␈α
in
␈β∞3␈↓ ↓H␈εαSection␈α∞4.3.3;␈α⊂ev␈α␈en␈α∂when␈↓ ∧b␈ελm␈↓ ¬⊂␈εα=␈↓ ¬B␈ελn␈↓ ¬f␈εα=␈α∞4,␈α⊂it␈α∞is␈α∂possible␈α∞to␈α∂m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α∂in␈α∞a
␈β∞←␈↓ ↓H␈εαlittle␈αless␈αtime␈αthan␈αis␈αrequired␈αby␈αAlgorithm␈αM.
␈β∂_␈↓ α␈εαThe␈α
|nal␈αalgorithm␈α
of␈αconcern␈α
to␈αus␈α
in␈αthis␈α
section␈α
is␈αlong␈α
division,␈αin␈α
which
␈β∂C␈↓ ↓H␈εαw␈α␈e␈αwan␈α␈t␈αto␈αdivide␈α(␈↓ βw␈ελn␈↓ ∧∀␈εα+␈↓ ∧?␈ελm␈↓ ∧←␈εα)-place␈αin␈α␈tegers␈αby␈↓ π
␈ελn␈↓ π ␈εα-place␈αin␈α␈tegers.␈αHere␈αthe␈αordinary
␈β∂n␈↓ ↓H␈εαpencil-and-paper␈αmethod␈αin␈α␈v␈α␈olv␈α␈es␈αa␈αcertain␈αamoun␈α␈t␈αof␈αguessw␈α␈ork␈αand␈αingen␈α␈uity
␈β⊂~␈↓ ↓H␈εαon␈α
the␈α
part␈αof␈α
the␈α
person␈α
doing␈αthe␈α
division;␈αw␈α␈e␈α
m␈α␈ust␈αeither␈α
eliminate␈α
this␈α
guess-
␈β⊂E␈↓ ↓H␈εαw␈α␈ork␈α∞from␈α∂the␈α∞algorithm␈α∂or␈α∞dev␈α␈elop␈α∂some␈α∂theory␈α∞to␈α∂explain␈α∞it␈α∂more␈α∞carefully.
␈β⊂q␈↓ α␈εαA␈α momen␈α␈t's␈α
re⎇ection␈α about␈α the␈α
ordinary␈α process␈α of␈α
long␈α division␈α sho␈α␈ws␈α that
␈β⊃≤␈↓ ↓H␈εαthe␈α general␈α
problem␈α
breaks␈α
do␈α␈wn␈α in␈α␈to␈α
simpler␈α
steps,␈α
each␈α
of␈α which␈α
is␈α
the␈α division
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα253
␈βαq␈↓ β ␈ε∪Fig.␈α 6.␈εβ␈α∀Wan␈α␈te␈α␈d:␈α
a␈α way␈αλto
␈ββ≤␈↓ β ␈εβde␈α␈termine␈↓ ∧;␈ε q␈↓ ∧U␈εβrap␈α␈i␈α↓d␈α␈ly.
␈β∧A␈↓ ↓H␈εαof␈αan␈α(␈↓ α0␈ελn␈↓ αM␈εα+␈αλ1)-place␈αn␈α␈um␈α␈ber␈↓ ¬↓␈ελu␈↓ ¬#␈εαby␈αthe␈↓ ε∃␈ελn␈↓ ε+␈εα-place␈αdivisor␈↓ λ ␈ελv␈↓ λ≤␈εα,␈αwhere␈α0␈ε⊗␈α
∀␈↓ d␈ελu␈↓ y␈εα/␈↓
␈ελv␈↓
(␈εα<␈↓
V␈ελb␈↓
d␈εα;␈αthe
␈β∧l␈↓ ↓H␈εαremainder␈↓ αp␈ελr␈↓ β
␈εαafter␈αeach␈α
step␈αis␈αless␈α
than␈↓ ε0␈ελv␈↓ εB␈εα,␈αso␈αw␈α␈e␈α
may␈αuse␈α
the␈αquan␈α␈tity␈↓
␈ελr␈↓
≤␈ελb␈↓
0␈εα+␈↓
Z␈εα(next
␈β¬↔␈↓ ↓H␈εαplace␈α
of␈α
dividend)␈α
as␈α∞the␈α
new␈↓ ¬)␈ελu␈↓ ¬L␈εαin␈α∞the␈α
succeeding␈α
step.␈α⊂For␈α
example,␈α∞if␈α
w␈α␈e␈α
are
␈β¬B␈↓ ↓H␈εαask␈α␈ed␈αto␈αdivide␈α3142␈αby␈α47,␈αw␈α␈e␈α|rst␈αdivide␈α314␈αby␈α47,␈αgetting␈α6␈αand␈αa␈αremainder
␈β¬m␈↓ ↓H␈εαof␈α32;␈α
then␈αw␈α␈e␈αdivide␈α
322␈αby␈α47,␈α
getting␈α6␈α
and␈αa␈αremainder␈α
of␈α40;␈α
th␈α␈us␈αw␈α␈e␈αhav␈α␈e
␈βε→␈↓ ↓H␈εαa␈αquotien␈α␈t␈α
of␈α
66␈α
and␈α
a␈αremainder␈α
of␈α
40.␈α∞It␈α
is␈α
clear␈α
that␈αthis␈α
same␈α
idea␈α
w␈α␈orks␈αin
␈βεD␈↓ ↓H␈εαgeneral,␈α
and␈α
so␈α
our␈αsearch␈α
for␈α
an␈α
appropriate␈α
division␈α
algorithm␈α
reduces␈α
to␈αthe
␈βεo␈↓ ↓H␈εαfollo␈α␈wing␈αproblem␈α(Fig.␈α6):
␈βπ:␈↓ ↓←␈ε∂Let␈↓ α!␈ελu␈↓ αB␈εα=␈α
(␈↓ α|␈ελu␈↓ β∨␈ελu␈↓ βH␈εα.␈αε.␈αε.␈↓ βx␈ελu␈↓ ∧∨␈εα)␈↓ ∧C␈ε∂and␈↓ ¬ ␈ελv␈↓ ¬'␈εα=␈α
(␈↓ ¬a␈ελv␈↓ ¬␈␈ελv␈↓ ε$␈εα.␈αε.␈αε.␈↓ εT␈ελv␈↓ εu␈εα)␈↓ π~␈ε∂be␈αnonnegativ␈α␈e␈αin␈α␈tegers␈α
in␈αradix
␈βπG␈↓ β⊃␈ε¬0␈↓ β4␈ε¬1␈↓ ∧
␈εn␈↓ ∧+␈εb␈↓ ¬q␈ε¬1␈↓ ε∂␈ε¬2␈↓ εc␈εn␈↓ π↓␈εb
␈βπe␈↓ ↓←␈ελb␈↓ ↓y␈ε∂notation,␈αsuch␈αthat␈↓ ∧3␈ελu␈↓ ∧I␈εα/␈↓ ∧[␈ελv␈↓ ∧x␈εα<␈↓ ¬&␈ελb␈↓ ¬4␈ε∂.␈αFind␈αan␈αalgorithm␈αto␈αdetermine␈↓ J␈ελq␈↓ d␈εα=␈ε⊗␈α
b␈↓
␈ελu␈↓
6␈εα/␈↓
H␈ελv␈↓
[␈ε⊗c␈ε∂.
␈βλ3␈↓ ↓H␈εαWe␈αmay␈αobserv␈α␈e␈αthat␈αthe␈αcondition␈↓ εβ␈ελu␈↓ ε→␈εα/␈↓ ε+␈ελv␈↓ εH␈εα<␈↓ εv␈ελb␈↓ π⊃␈εαis␈αequivalen␈α␈t␈αto␈αthe␈αcondition␈αthat
␈βλ↑␈↓ ↓H␈ελu␈↓ ↓]␈εα/␈↓ ↓o␈ελb␈↓ α␈εα>␈↓ α<␈ελv␈↓ αN␈εα;␈α∂i.e.,␈ε⊗␈α∞b␈↓ β;␈ελu␈↓ βQ␈εα/␈↓ βc␈ελb␈↓ βq␈ε⊗c␈εα␈α
<␈↓ ∧=␈ελv␈↓ ∧P␈εα.␈α⊃This␈α∞is␈α∞simply␈α∞the␈α
condition␈α∞that␈α∞(␈↓ ⊗␈ελu␈↓ 9␈ελu␈↓ b␈εα.␈αε.␈αε.␈↓
∩␈ελu␈↓
c␈εα)␈↓ λ␈εα<
␈βλl␈↓ *␈ε¬0␈↓ M␈ε¬1␈↓
&␈εn␈↓
8␈ε→␈␈ε¬1␈↓
o␈εb
␈β
␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓r␈ελv␈↓ α⊗␈εα.␈αε.␈αε.␈↓ αF␈ελv␈↓ αh␈εα)␈↓ β␈εα.␈α∞Furthermore,␈α
if␈αw␈α␈e␈α
write␈↓ ε,␈ελr␈↓ εG␈εα=␈↓ εv␈ελu␈↓ π∀␈ε⊗␈␈↓ π@␈ελq␈↓ πP␈ελv␈↓ πc␈εα,␈α
then␈↓ λM␈ελq␈↓ λi␈εαis␈α
the␈α
unique␈αin␈α␈teger
␈β ↔␈↓ ↓c␈ε¬1␈↓ αα␈ε¬2␈↓ αV␈εn␈↓ αt␈εb
␈β 5␈↓ ↓H␈εαsuch␈αthat␈α0␈ε⊗␈α
∀␈↓ β2␈ελr␈↓ βK␈ε⊗∀␈↓ βy␈ελv␈↓ ∧␈εα.
␈β `␈↓ α␈εαThe␈α most␈αλobvious␈α approach␈α to␈αλthis␈α problem␈αλis␈α to␈α mak␈α␈e␈αλa␈α guess␈αλabout␈↓
1␈ελq␈↓
A␈εα,␈α based
␈β
␈↓ ↓H␈εαon␈α
the␈α
most␈α
signi|can␈α␈t␈α
digits␈α
of␈↓ ¬;␈ελu␈↓ ¬[␈εαand␈↓ ε∨␈ελv␈↓ ε2␈εα.␈αIt␈α
isn't␈α
obvious␈α
that␈α
such␈α
a␈α
method␈α
will
␈β
6␈↓ ↓H␈εαbe␈αreliable␈αenough,␈αbut␈αit␈αis␈αw␈α␈orth␈αin␈α␈v␈α␈estigating;␈αlet␈αus␈αtherefore␈αset
␈β
}␈↓ ¬Q␈ε↓∩␈↓ ¬m␈ε↓⊗␈↓ π
␈ε↓↔␈↓ λ
␈ε↓∪
␈β↓␈↓ ε↓␈ελu␈↓ ε$␈ελb␈↓ ε:␈εα+␈↓ εf␈ελu
␈β∂␈↓ ε∃␈ε¬0␈↓ ε{␈ε¬1
␈β_␈↓ ∧F␈εα∂␈↓ ∧G␈ελq␈↓ ∧a␈εα=␈↓ ¬∂␈εαmin␈↓ π#␈εα,␈↓ π9␈ελb␈↓ πO␈ε⊗␈␈εα␈αλ1␈↓ λ#␈εα.␈↓ α␈εα(2)
␈β)␈↓ ε↓␈∧)ε↓α↓
␈β1␈↓ ε6␈ελv
␈β>␈↓ εF␈ε¬1
␈βz␈↓ ↓H␈εαThis␈α
form␈α␈ula␈α∞says␈↓ βq␈εα∂␈↓ βr␈ελq␈↓ ∧⊂␈εαis␈α
obtained␈α∞by␈α∞dividing␈α∞the␈α
t␈α␈w␈α␈o␈α∞leading␈α∞digits␈α∞of␈↓
!␈ελu␈↓
E␈εαby␈α
the
␈β%␈↓ ↓H␈εαleading␈αdigit␈αof␈↓ βB␈ελv␈↓ βT␈εα;␈αand␈αif␈αthe␈αresult␈αis␈↓ ε_␈ελb␈↓ ε3␈εαor␈αmore␈αw␈α␈e␈αcan␈αreplace␈αit␈αby␈α(␈↓
∞␈ελb␈↓
$␈ε⊗␈␈εα␈αλ1).
␈βQ␈↓ α␈εαIt␈α⊃is␈α⊂a␈α⊂remarkable␈α⊃fact,␈α⊃which␈α⊃w␈α␈e␈α⊂will␈α⊃no␈α␈w␈α⊂in␈α␈v␈α␈estigate,␈α∩that␈α⊂this␈α⊃value␈↓ ≠␈εα∂␈↓ ≤␈ελq
␈β|␈↓ ↓H␈εαis␈α∞always␈α∂a␈α∂v␈α␈ery␈α∂good␈α∂appro␈α␈ximation␈α∂to␈α∂the␈α∞desired␈α∂answ␈α␈er␈↓ ∂␈ελq␈↓ ∨␈εα,␈α⊂so␈α∂long␈α∂as␈↓
g␈ελv␈↓ ∀␈εαis
␈β
␈↓
w␈ε¬1
␈β
'␈↓ ↓H␈εαreasonably␈αlarge.␈α
In␈αorder␈αto␈α
analyze␈αho␈α␈w␈αclose␈↓ π8␈εα∂␈↓ π9␈ελq␈↓ πV␈εαcomes␈αto␈↓ λl␈ελq␈↓ λ|␈εα,␈α
w␈α␈e␈αwill␈α|rst␈αpro␈α␈v␈α␈e
␈β
R␈↓ ↓H␈εαthat␈↓ α∃␈εα∂␈↓ α⊗␈ελq␈↓ α2␈εαis␈αnev␈α␈er␈αtoo␈αsmall.
␈β∞∂␈↓ ↓H␈ε∩Theorem␈αA.␈ε∂␈α→In␈αthe␈αnotation␈αabo␈α␈v␈α␈e,␈↓ εε␈εα∂␈↓ επ␈ελq␈↓ ε!␈ε⊗∃␈↓ εO␈ελq␈↓ ε←␈ε∂.
␈β∞M␈↓ ↓H␈ε∂Proof.␈εα␈αSince␈↓ β
␈ελq␈↓ β$␈ε⊗∀␈↓ βR␈ελb␈↓ βa␈ε⊗␈␈εα1,␈απthe␈απtheorem␈αεis␈απcertainly␈αεtrue␈αεif␈↓ πx␈εα∂␈↓ πy␈ελq␈↓ λ∪␈εα=␈↓ λA␈ελb␈↓ λP␈ε⊗␈␈εα1.␈α
Suppose␈αεtherefore
␈β∞x␈↓ ↓H␈εαthat␈↓ α⊃␈εα∂␈↓ α∩␈ελq␈↓ α,␈εα<␈↓ αZ␈ελb␈↓ αl␈ε⊗␈␈εα␈α∧1;␈α it␈α follo␈α␈ws␈αλthat␈↓ ¬↔␈εα∂␈↓ ¬_␈ελq␈↓ ¬2␈εα=␈ε⊗␈α
b␈εα(␈↓ ¬z␈ελu␈↓ ε≥␈ελb␈↓ ε/␈εα+␈↓ εV␈ελu␈↓ εy␈εα)/␈↓ π↔␈ελv␈↓ π5␈ε⊗c␈εα,␈α
hence␈↓ λ6␈εα∂␈↓ λ7␈ελq␈↓ λG␈ελv␈↓ λo␈ε⊗∃␈↓ ≥␈ελu␈↓ @␈ελb␈↓ R␈εα+␈↓ z␈ελu␈↓
␈ε⊗␈␈↓
G␈ελv␈↓
i␈εα+␈αβ1.
␈β∂¬␈↓ ε∂␈ε¬0␈↓ εk␈ε¬1␈↓ π'␈ε¬1␈↓ λW␈ε¬1␈↓ 2␈ε¬0␈↓
∞␈ε¬1␈↓
W␈ε¬1
␈β∂#␈↓ ↓H␈εαTherefore
␈β∂c␈↓ βx␈εn␈↓ ∧
␈ε→␈␈ε¬␈α␈1␈↓ ¬≡␈εn
␈β∂i␈↓ ↓M␈ελu␈↓ ↓j␈ε⊗␈␈↓ α⊗␈εα∂␈↓ α⊗␈ελq␈↓ α'␈ελv␈↓ αC␈ε⊗∀␈↓ αq␈ελu␈↓ β∂␈ε⊗␈␈↓ β:␈εα∂␈↓ β;␈ελq␈↓ βK␈ελv␈↓ βi␈ελb␈↓ ∧?␈ε⊗∀␈↓ ∧m␈ελu␈↓ ¬⊂␈ελb␈↓ ¬8␈εα+␈↓ ¬d␈ε⊗↓␈αε↓␈αε↓␈↓ ε⊗␈εα+␈↓ εB␈ελu
␈β∂w␈↓ β[␈ε¬1␈↓ ¬↓␈ε¬0␈↓ εW␈εn
␈β⊂⊗␈↓ ¬n␈εn␈↓ εe␈εn␈↓ εw␈ε→␈␈ε¬1␈↓ λβ␈εn␈↓ λ∃␈ε→␈␈ε¬1␈↓ α␈εn␈↓ ∀␈ε→␈␈ε¬1
␈β⊂≤␈↓ ¬¬␈ε⊗␈␈εα␈αλ(␈↓ ¬=␈ελu␈↓ ¬`␈ελb␈↓ ελ␈εα+␈↓ ε4␈ελu␈↓ εW␈ελb␈↓ π*␈ε⊗␈␈↓ πV␈ελv␈↓ πu␈ελb␈↓ λH␈εα+␈↓ λt␈ελb␈↓ @␈εα)
␈β⊂)␈↓ ¬Q␈ε¬0␈↓ εI␈ε¬1␈↓ πf␈ε¬1
␈β⊂O␈↓ ¬≡␈εn␈↓ ¬0␈ε→␈␈ε¬2␈↓ πV␈εn␈↓ πh␈ε→␈␈ε¬1␈↓ λt␈εn␈↓ ε␈ε→␈␈ε¬␈α␈1␈↓
∃␈εn␈↓
'␈ε→␈␈ε¬1
␈β⊂U␈↓ ∧?␈εα=␈↓ ∧m␈ελu␈↓ ¬⊂␈ελb␈↓ ¬c␈εα+␈↓ ε∂␈ε⊗↓␈αε↓␈αε↓␈↓ εA␈εα+␈↓ εm␈ελu␈↓ π≤␈ε⊗␈␈↓ πH␈ελb␈↓ λ≠␈εα+␈↓ λG␈ελv␈↓ λe␈ελb␈↓ ;␈εα<␈↓ i␈ελv␈↓
π␈ελb␈↓
\␈ε⊗∀␈↓
␈ελv␈↓ ≥␈εα.
␈β⊂c␈↓ ¬↓␈ε¬2␈↓ πα␈εn␈↓ λW␈ε¬1␈↓ y␈ε¬1
␈β⊃≤␈↓ ↓H␈εαSince␈↓ α&␈ελu␈↓ αC␈ε⊗␈␈↓ αn␈εα∂␈↓ αo␈ελq␈↓ α␈␈ελv␈↓ β≤␈εα<␈↓ βJ␈ελv␈↓ β]␈εα,␈αw␈α␈e␈αm␈α␈ust␈αhav␈α␈e␈↓ ¬U␈εα∂␈↓ ¬V␈ελq␈↓ ¬p␈ε⊗∃␈↓ ε≡␈ελq␈↓ ε.␈εα.
␈β⊃!␈↓ ε`␈∧⊃!ε`≠∂
␈β∪(
␈β↓Y␈↓ ↓H␈εα254␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα(␈↓ α␈εαWe␈αλwill␈αλno␈α␈w␈αλpro␈α␈v␈α␈e␈αλthat␈↓ ∧v␈εα∂␈↓ ∧w␈ελq␈↓ ¬∂␈εαcannot␈αλbe␈αλm␈α␈uch␈αλlarger␈αλthan␈↓ λ<␈ελq␈↓ λT␈εαin␈αλpractical␈αλsituations.
␈βαS␈↓ ↓H␈εαAssume␈αthat␈↓ β→␈εα∂␈↓ β~␈ελq␈↓ β4␈ε⊗∃␈↓ βb␈ελq␈↓ βz␈εα+␈αλ3.␈αWe␈αhav␈α␈e
␈ββ≤␈↓ ¬>␈εn␈↓ ε5␈εn␈↓ εG␈ε→␈␈ε¬1
␈ββ!␈↓ βD␈ελu␈↓ βg␈ελb␈↓ β⎇␈εα+␈↓ ∧)␈ελu␈↓ ¬␈ελu␈↓ ¬/␈ελb␈↓ ¬X␈εα+␈↓ ε∧␈ελu␈↓ ε'␈ελb␈↓ π\␈ελu␈↓ ~␈ελu
␈ββ.␈↓ βY␈ε¬0␈↓ ∧>␈ε¬1␈↓ ¬!␈ε¬0␈↓ ε_␈ε¬1
␈ββ8␈↓ αw␈εα∂␈↓ αx␈ελq␈↓ β∩␈ε⊗∀␈↓ ∧Z␈εα=␈↓ π␈ε⊗∀␈↓ λ*␈εα<␈↓ r␈εα.
␈ββH␈↓ βD␈∧βHβDα↓ ␈↓ ¬␈∧βH¬α↓f␈↓ π2␈∧βHπ2αj␈↓ λ\␈∧βHλ\α↓∪
␈ββN␈↓ ¬w␈εn␈↓ ε ␈ε→␈␈ε¬1␈↓ π←␈εn␈↓ πq␈ε→␈␈ε¬␈α␈1␈↓ 1␈εn␈↓ C␈ε→␈␈ε¬1
␈ββP␈↓ βy␈ελv␈↓ ¬J␈ελv␈↓ ¬i␈ελb␈↓ π2␈ελv␈↓ πP␈ελb␈↓ λ\␈ελv␈↓ λw␈ε⊗␈␈↓ #␈ελb
␈ββ↑␈↓ ∧ ␈ε¬1␈↓ ¬Z␈ε¬1␈↓ πB␈ε¬1
␈ββ⎇␈↓ ↓H␈ε↓␈␈↓ E␈ε↓↓
␈β∧↔␈↓ β;␈εn␈↓ βM␈ε→␈␈ε¬1
␈β∧≤␈↓ ↓V␈εαThe␈απcase␈↓ αb␈ελv␈↓ α␈␈εα=␈↓ β-␈ελb␈↓ β␈␈εαis␈απimpossible,␈αλfor␈απif␈↓ ε"␈ελv␈↓ ε?␈εα=␈α
(100␈↓ π5␈εα.␈αε.␈αε.␈↓ πe␈εα0␈↓ πw␈εα)␈↓ λ⊗␈εαthen␈↓ λc␈ελq␈↓ λ⎇␈εα=␈↓ *␈εα∂␈↓ +␈ελq␈↓ ;␈εα.␈↓ Z␈εαFurthermore,
␈β∧*␈↓ λβ␈εb
␈β∧H␈↓ ↓H␈εαsince␈↓ α ␈ελq␈↓ α:␈εα>␈α
(␈↓ αt␈ελu␈↓ β ␈εα/␈↓ β≠␈ελv␈↓ β.␈εα)␈ε⊗␈αλ␈␈εα␈αλ1,
␈β¬∪␈↓ π]␈ε↓ ␈↓ ∞␈ε↓!
␈β¬≤␈↓ λ*␈εn␈↓ λ;␈ε→␈␈ε¬1
␈β¬!␈↓ ¬_␈ελu␈↓ ε'␈ελu␈↓ πC␈ελu␈↓ λ≠␈ελb
␈β¬8␈↓ α␈␈εα3␈ε⊗␈α
∀␈↓ βH␈εα∂␈↓ βI␈ελq␈↓ βa␈ε⊗␈␈↓ ∧
␈ελq␈↓ ∧'␈εα<␈↓ ¬w␈ε⊗␈␈↓ εI␈εα+␈αλ1␈α
=␈↓ -␈εα+␈αλ1.
␈β¬H␈↓ ∧Y␈∧¬H∧Yα↓∪␈↓ ε'␈∧¬Hε'α⊗␈↓ πC␈∧¬HπCα⊗␈↓ πx␈∧¬Hπxα↓∪
␈β¬N␈↓ ¬.␈εn␈↓ ¬@␈ε→␈␈ε¬1␈↓ λM␈εn␈↓ λ←␈ε→␈␈ε¬1
␈β¬P␈↓ ∧Y␈ελv␈↓ ∧t␈ε⊗␈␈↓ ¬ ␈ελb␈↓ ε)␈ελv␈↓ πE␈ελv␈↓ πx␈ελv␈↓ λ∪␈ε⊗␈␈↓ λ?␈ελb
␈βε&␈↓ ↓H␈εαTherefore
␈βεD␈↓ ¬%␈ε↓ ␈↓ εV␈ε↓!
␈βεM␈↓ ε∃␈εn␈↓ ε'␈ε→␈␈ε¬1
␈βεR␈↓ ∧;␈ελu␈↓ ¬@␈ελv␈↓ ¬Z␈ε⊗␈␈↓ εε␈ελb
␈βεi␈↓ ∧←␈εα>␈α
2␈↓ εw␈ε⊗∃␈εα␈α
2(␈↓ πC␈ελv␈↓ πi␈ε⊗␈␈εα␈αλ1).
␈βεv␈↓ πS␈ε¬1
␈βεy␈↓ ∧;␈∧εy∧;α⊗␈↓ ¬@␈∧εy¬@α↓∪
␈βε␈␈↓ ¬q␈εn␈↓ εβ␈ε→␈␈ε¬1
␈βπ↓␈↓ ∧<␈ελv␈↓ ¬c␈ελb
␈βπK␈↓ ↓H␈εαFinally,␈α
since␈↓ β"␈ελb␈↓ β6␈ε⊗␈␈εα␈α¬4␈ε⊗␈α
∃␈↓ ∧(␈εα∂␈↓ ∧)␈ελq␈↓ ∧?␈ε⊗␈␈εα␈α¬3␈ε⊗␈α
∃␈↓ ¬2␈ελq␈↓ ¬L␈εα=␈ε⊗␈α
b␈↓ ελ␈ελu␈↓ ε≡␈εα/␈↓ ε0␈ελv␈↓ εC␈ε⊗c␈α
∃␈εα␈α
2(␈↓ π'␈ελv␈↓ πK␈ε⊗␈␈εα␈α¬1),␈α
w␈α␈e␈α
hav␈α␈e␈↓ -␈ελv␈↓ U␈εα<␈ε⊗␈α
b␈↓
⊃␈ελb␈↓
∨␈εα/2␈ε⊗c␈εα.␈αThis
␈βπX␈↓ π7␈ε¬1␈↓ <␈ε¬1
␈βπv␈↓ ↓H␈εαpro␈α␈v␈α␈es␈αthe␈αresult␈αw␈α␈e␈αseek:
␈βλ4␈↓ ↓H␈ε∩Theorem␈αB.␈ε∂␈α→If␈↓ β?␈ελv␈↓ βg␈ε⊗∃␈α
b␈↓ ∧#␈ελb␈↓ ∧1␈εα/2␈ε⊗c␈ε∂,␈αthen␈↓ ¬J␈εα∂␈↓ ¬K␈ελq␈↓ ¬c␈ε⊗␈␈εα␈αλ2␈ε⊗␈α
∀␈↓ εY␈ελq␈↓ εt␈ε⊗∀␈↓ π!␈εα∂␈↓ π"␈ελq␈↓ π2␈ε∂.
␈βλ9␈↓ πc␈∧λ9πc≠∂
␈βλA␈↓ βO␈ε¬1
␈βλq␈↓ α␈εαThe␈αλmost␈απimportan␈α␈t␈αλpart␈απof␈αλthis␈απtheorem␈αλis␈απthat␈ε∂␈αλthe␈απconclusion␈αλis␈απindependen␈α␈t
␈β ≥␈↓ ↓H␈ε∂of␈↓ ↓r␈ελb␈↓ α␈εα;␈α no␈απmatter␈απho␈α␈w␈αλlarge␈↓ ∧K␈ελb␈↓ ∧`␈εαis,␈α the␈απtrial␈απquotien␈α␈t␈↓ π∀␈εα∂␈↓ π∃␈ελq␈↓ π-␈εαwill␈απnev␈α␈er␈απbe␈απmore␈αλthan␈απ2␈απin␈απerror.
␈β H␈↓ α␈εαThe␈αλcondition␈αλthat␈↓ ∧7␈ελv␈↓ ∧←␈ε⊗∃␈α
b␈↓ ¬≠␈ελb␈↓ ¬)␈εα/2␈ε⊗c␈εα␈αλis␈α v␈α␈ery␈αλm␈α␈uch␈αλlik␈α␈e␈αλa␈αλnormalization␈αλrequiremen␈α␈t;
␈β U␈↓ ∧F␈ε¬1
␈β s␈↓ ↓H␈εαin␈α
fact,␈α
it␈α
is␈α
exactly␈α
the␈α
condition␈α
of␈α
⎇oating-binary␈α
normalization,␈α
in␈α
a␈α
binary
␈β
≡␈↓ ↓H␈εαcomputer.␈α⊃One␈α
simple␈α∞way␈α
to␈α∞ensure␈α∞that␈↓ εr␈ελv␈↓ π≡␈εαis␈α∞su}cien␈α␈tly␈α∞large␈α
is␈α∞to␈α
m␈α␈ultiply
␈β
,␈↓ πα␈ε¬1
␈β
I␈↓ ↓H␈εαboth␈↓ α≥␈ελu␈↓ αA␈εαand␈↓ βλ␈ελv␈↓ β)␈εαby␈ε⊗␈α∞b␈↓ βm␈ελb␈↓ β{␈εα/(␈↓ ∧→␈ελv␈↓ ∧@␈εα+␈α
1)␈ε⊗c␈εα;␈α∞this␈α∞does␈α∞not␈α
change␈α∞the␈α∞value␈α
of␈↓ T␈ελu␈↓ j␈εα/␈↓ |␈ελv␈↓
∂␈εα,␈α∞nor␈α
does
␈β
W␈↓ ∧)␈ε¬1
␈β
u␈↓ ↓H␈εαit␈αincrease␈α
the␈αn␈α␈um␈α␈ber␈αof␈α
places␈αin␈↓ ¬u␈ελv␈↓ ελ␈εα,␈αand␈α
ex␈α␈ercise␈α23␈α
pro␈α␈v␈α␈es␈αthat␈α
it␈αwill␈αalways
␈β ␈↓ ↓H␈εαmak␈α␈e␈α∞the␈α∞new␈α∞value␈α∂of␈↓ ∧D␈ελv␈↓ ∧p␈εαlarge␈α∞enough.␈α∪(␈ε∂Note:␈εα␈α⊃Another␈α∞way␈α∞to␈α∞normalize␈α∞the
␈β-␈↓ ∧T␈ε¬1
␈βK␈↓ ↓H␈εαdivisor␈αis␈αdiscussed␈αin␈αex␈α␈ercise␈α28.)
␈βv␈↓ α␈εαNo␈α␈w␈αthat␈αw␈α␈e␈αhav␈α␈e␈αarmed␈α
ourselv␈α␈es␈αwith␈αall␈αof␈αthese␈αfacts,␈αw␈α␈e␈αare␈αin␈αa␈αposi-
␈β!␈↓ ↓H␈εαtion␈αto␈αwrite␈α
the␈αdesired␈α
long␈αdivision␈α
algorithm.␈α
This␈αalgorithm␈α
uses␈αa␈αsligh␈α␈tly
␈βM␈↓ ↓H␈εαimpro␈α␈v␈α␈ed␈αchoice␈αof␈↓ β|␈εα∂␈↓ β|␈ελq␈↓ ∧→␈εαin␈αstep␈αD3,␈α
which␈αguaran␈α␈tees␈αthat␈↓ λ>␈ελq␈↓ λX␈εα=␈↓ ε␈εα∂␈↓ π␈ελq␈↓ #␈εαor␈↓ N␈εα∂␈↓ O␈ελq␈↓ h␈ε⊗␈␈εα␈αλ1;␈αin␈αfact,
␈βx␈↓ ↓H␈εαthe␈αimpro␈α␈v␈α␈ed␈αchoice␈αof␈↓ ∧9␈εα∂␈↓ ∧:␈ελq␈↓ ∧V␈εαmade␈αhere␈αis␈αalmost␈αalways␈αaccurate.
␈β
6␈↓ ↓H␈ε∩Algorithm␈α D␈εα␈α (␈ε∂Division␈α of␈α nonnegativ␈α␈e␈α in␈α␈tegers␈↓ π∪␈εα)␈ε∩.␈εα␈α∩Giv␈α␈en␈α nonnegativ␈α␈e␈α in␈α␈tegers␈↓
i␈ελu␈↓ λ␈εα=
␈β
a␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈ελu␈↓ α ␈εα.␈αε.␈αε.␈↓ αP␈ελu␈↓ β-␈εα)␈↓ βS␈εαand␈↓ ∧≠␈ελv␈↓ ∧;␈εα=␈α
(␈↓ ∧x␈ελv␈↓ ¬↔␈ελv␈↓ ¬;␈εα.␈αε.␈αε.␈↓ ¬k␈ελv␈↓ ε
␈εα)␈↓ ε%␈εα,␈α∞where␈↓ π'␈ελv␈↓ πS␈ε⊗≤␈εα␈α
0␈α∞and␈↓ λl␈ελn␈↓ ∂␈εα>␈α∞1,␈α∞w␈α␈e␈α∞form␈α∞the
␈β
n␈↓ ↓h␈ε¬1␈↓ α␈ε¬2␈↓ αd␈εm␈↓ α}␈ε¬+␈↓ β≠␈εn␈↓ β9␈εb␈↓ ¬λ␈ε¬1␈↓ ¬&␈ε¬2␈↓ ¬{␈εn␈↓ ε→␈εb␈↓ π7␈ε¬1
␈β∞␈↓ ↓H␈εαquotien␈α␈t␈ε⊗␈α
b␈↓ αd␈ελu␈↓ αy␈εα/␈↓ β␈ελv␈↓ β≡␈ε⊗c␈εα␈α=␈α(␈↓ βt␈ελq␈↓ ∧∂␈ελq␈↓ ∧1␈εα.␈αε.␈αε.␈↓ ∧a␈ελq␈↓ ¬λ␈εα)␈↓ ¬-␈εαand␈α
the␈α
remainder␈↓ π↑␈ελu␈↓ πz␈εαmod␈↓ λD␈ελv␈↓ λb␈εα=␈α(␈↓ ≡␈ελr␈↓ 9␈ελr␈↓ Z␈εα.␈αε.␈αε.␈↓
␈ελr␈↓
)␈εα)␈↓
A␈εα.␈α∂(This
␈β∞~␈↓ ∧↓␈ε¬0␈↓ ∧≤␈ε¬1␈↓ ∧n␈εm␈↓ ¬∀␈εb␈↓ +␈ε¬1␈↓ F␈ε¬2␈↓
↔␈εn␈↓
5␈εb
␈β∞7␈↓ ↓H␈εαnotation␈α
is␈α
sligh␈α␈tly␈α∞di{eren␈α␈t␈α
from␈α
that␈α∞used␈α
in␈α
the␈α∞abo␈α␈v␈α␈e␈α
proofs.␈α⊂When␈↓
>␈ελn␈↓
`␈εα=␈α1,
␈β∞c␈↓ ↓H␈εαthe␈αsimpler␈αalgorithm␈αof␈αex␈α␈ercise␈α16␈αshould␈αbe␈αused.)
␈β∂↔␈↓ ↓H␈ε∩D1.␈↓ α␈εα[Normalize.]␈α∨Set␈↓ ∧+␈ελd␈↓ ∧N␈ε⊗ ␈α⊂b␈↓ ¬⊂␈ελb␈↓ ¬≡␈εα/(␈↓ ¬<␈ελv␈↓ ¬e␈εα+␈α
1)␈ε⊗c␈εα.␈α⊗Then␈α∂set␈α⊂(␈↓ λλ␈ελu␈↓ λ+␈ελu␈↓ λN␈ελu␈↓ λw␈εα.␈αε.␈αε.␈↓ '␈ελu␈↓
∧␈εα)␈↓
+␈εαequal␈α∂to
␈β∂$␈↓ ¬L␈ε¬1␈↓ λ≤␈ε¬0␈↓ λ?␈ε¬1␈↓ λb␈ε¬2␈↓ ;␈εm␈↓ U␈ε¬+␈↓ r␈εn␈↓
⊂␈εb
␈β∂B␈↓ α␈εα(␈↓ α_␈ελu␈↓ α;␈ελu␈↓ αd␈εα.␈αε.␈αε.␈↓ β∀␈ελu␈↓ βq␈εα)␈↓ ∧∃␈εαtimes␈↓ ∧u␈ελd␈↓ ¬ ␈εα,␈αand␈αset␈α(␈↓ ε)␈ελv␈↓ εG␈ελv␈↓ εk␈εα.␈αε.␈αε.␈↓ π≠␈ελv␈↓ π=␈εα)␈↓ πa␈εαequal␈αto␈α(␈↓ λv␈ελv␈↓ ∃␈ελv␈↓ 9␈εα.␈αε.␈αε.␈↓ i␈ελv␈↓
␈εα)␈↓
.␈εαtimes␈↓ ∞␈ελd␈↓ "␈εα.
␈β∂P␈↓ α-␈ε¬1␈↓ αP␈ε¬2␈↓ β)␈εm␈↓ βB␈ε¬+␈↓ β←␈εn␈↓ β⎇␈εb␈↓ ε9␈ε¬1␈↓ εW␈ε¬2␈↓ π+␈εn␈↓ πI␈εb␈↓ ε␈ε¬1␈↓ $␈ε¬2␈↓ y␈εn␈↓
↔␈εb
␈β∂m␈↓ α␈εα(Note␈α
the␈α in␈α␈troduction␈α
of␈α
the␈α new␈α
digit␈α position␈↓ πv␈ελu␈↓ λ#␈εαat␈α the␈α
left␈α
of␈↓ m␈ελu␈↓
⊂␈εα;␈αif␈↓
D␈ελd␈↓
b␈εα=␈α
1,
␈β∂{␈↓ λ␈ε¬0␈↓
α␈ε¬1
␈β⊂→␈↓ α␈εαall␈α∂w␈α␈e␈α∂need␈α∂to␈α∞do␈α∂in␈α∂this␈α∂step␈α∂is␈α∂to␈α∞set␈↓ πλ␈ελu␈↓ π:␈ε⊗ ␈εα␈α∂0.␈α∀On␈α∂a␈α∂binary␈α∂computer␈α∞it
␈β⊂&␈↓ π≥␈ε¬0
␈β⊂D␈↓ α␈εαmay␈αbe␈αpreferable␈αto␈αchoose␈↓ ¬P␈ελd␈↓ ¬p␈εαto␈αbe␈αa␈αpo␈α␈w␈α␈er␈αof␈α2␈αinstead␈αof␈αusing␈αthe␈αvalue
␈β⊂o␈↓ α␈εαsuggested␈α
here;␈αan␈α␈y␈α value␈α
of␈↓ ¬K␈ελd␈↓ ¬i␈εαthat␈α
results␈α
in␈↓ πM␈ελv␈↓ πu␈ε⊗∃␈α
b␈↓ λ1␈ελb␈↓ λ?␈εα/2␈ε⊗c␈εα␈α
will␈α
su}ce.␈αSee␈α also
␈β⊂|␈↓ π]␈ε¬1
␈β⊃~␈↓ α␈εαex␈α␈ercise␈α37.)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα255
␈βε∪␈↓ ¬↔␈ε∪Fig.␈α7.␈εβ␈α→Long␈α
division␈α␈.
␈βπ⊗␈↓ ↓H␈ε∩D2.␈↓ α␈εα[Initialize␈↓ β.␈ελj␈↓ β?␈εα.]␈α Set␈↓ ∧5␈ελj␈↓ ∧W␈ε⊗ ␈εα␈α⊃0.␈α_(The␈α⊃loop␈α⊂on␈↓ π#␈ελj␈↓ π3␈εα,␈α⊃steps␈α⊃D2␈α⊂through␈α⊂D7,␈α⊃will␈α⊂be
␈βπA␈↓ α␈εαessen␈α␈tially␈α⊂a␈α⊂division␈α⊃of␈α⊂(␈↓ ¬$␈ελu␈↓ ¬F␈ελu␈↓ ε→␈εα.␈αε.␈αε.␈↓ εI␈ελu␈↓ π→␈εα)␈↓ πA␈εαby␈α⊃(␈↓ λε␈ελv␈↓ λ$␈ελv␈↓ λH␈εα.␈αε.␈αε.␈↓ λx␈ελv␈↓ ~␈εα)␈↓ B␈εαto␈α⊂get␈α⊂a␈α⊂single
␈βπN␈↓ ¬8␈εj␈↓ ¬Z␈εj␈↓ ¬g␈ε¬+1␈↓ ε]␈εj␈↓ εj␈ε¬+␈↓ ππ␈εn␈↓ π%␈εb␈↓ λ∃␈ε¬1␈↓ λ4␈ε¬2␈↓ λ␈εn␈↓ &␈εb
␈βπl␈↓ α␈εαquotien␈α␈t␈αdigit␈↓ βm␈ελq␈↓ ∧π␈εα;␈αcf.␈αFig.␈α6.)
␈βπz␈↓ βz␈εj
␈βλ'␈↓ ↓H␈ε∩D3.␈↓ α␈εα[Calculate␈↓ β5␈εα∂␈↓ β5␈ελq␈↓ βF␈εα.]␈α∪If␈↓ ∧∞␈ελu␈↓ ∧:␈εα=␈↓ ∧h␈ελv␈↓ ¬ε␈εα,␈α
set␈↓ ¬N␈εα∂␈↓ ¬O␈ελq␈↓ ¬i␈ε⊗ ␈↓ ε↔␈ελb␈↓ ε*␈ε⊗␈␈εα␈α¬1;␈α
otherwise␈α
set␈↓ λK␈εα∂␈↓ λL␈ελq␈↓ λf␈ε⊗ ␈α
b␈εα(␈↓ .␈ελu␈↓ P␈ελb␈↓ c␈εα+␈↓
␈ελu␈↓
X␈εα)/␈↓
v␈ελv␈↓ ∀␈ε⊗c␈εα.
␈βλ4␈↓ ∧#␈εj␈↓ ∧x␈ε¬1␈↓ C␈εj␈↓
␈εj␈↓
-␈ε¬+1␈↓ ε␈ε¬1
␈βλR␈↓ α␈εαNo␈α␈w␈α∞test␈α∞if␈↓ βL␈ελv␈↓ βj␈εα∂␈↓ βk␈ελq␈↓ ∧λ␈εα>␈α
(␈↓ ∧E␈ελu␈↓ ∧f␈ελb␈↓ ∧}␈εα+␈↓ ¬+␈ελu␈↓ ε↓␈ε⊗␈␈↓ ε.␈εα∂␈↓ ε/␈ελq␈↓ ε?␈ελv␈↓ ε]␈εα)␈↓ εi␈ελb␈↓ π␈εα+␈↓ π.␈ελu␈↓ π{␈εα;␈α∞if␈α∞so,␈α∞decrease␈↓ }␈εα∂␈↓ ␈␈ελq␈↓
≥␈εαby␈α∞1␈α
and
␈βλ←␈↓ β\␈ε¬2␈↓ ∧Y␈εj␈↓ ¬@␈εj␈↓ ¬M␈ε¬+1␈↓ εN␈ε¬1␈↓ πB␈εj␈↓ πO␈ε¬+2
␈βλ⎇␈↓ α␈εαrepeat␈αthis␈αtest.␈α(The␈αlatter␈αtest␈αdetermines␈αat␈αhigh␈αspeed␈αmost␈αof␈αthe␈αcases
␈β (␈↓ α␈εαin␈αwhich␈α
the␈αtrial␈αvalue␈↓ ¬␈εα∂␈↓ ¬␈ελq␈↓ ¬(␈εαis␈αone␈αtoo␈α
large,␈αand␈αit␈α
eliminates␈ε∂␈αall␈εα␈αcases␈αwhere
␈β S␈↓ α␈εα∂␈↓ α␈ελq␈↓ α(␈εαis␈αt␈α␈w␈α␈o␈αtoo␈αlarge;␈αsee␈αex␈α␈ercises␈α19,␈α20,␈α21.)
␈β
∞␈↓ ↓H␈ε∩D4.␈↓ α␈εα[Multiply␈α∂and␈α∂subtract.]␈α≡Replace␈α∂(␈↓ ε@␈ελu␈↓ εb␈ελu␈↓ π5␈εα.␈αε.␈αε.␈↓ πe␈ελu␈↓ λ5␈εα)␈↓ λ\␈εαby␈α∂(␈↓ ∨␈ελu␈↓ A␈ελu␈↓
∀␈εα.␈αε.␈αε.␈↓
D␈ελu␈↓ ∀␈εα)
␈β
≠␈↓ εU␈εj␈↓ εv␈εj␈↓ π∧␈ε¬+␈α␈1␈↓ πy␈εj␈↓ λπ␈ε¬+␈↓ λ#␈εn␈↓ λA␈εb␈↓ 4␈εj␈↓ V␈εj␈↓ c␈ε¬+1␈↓
X␈εj␈↓
f␈ε¬+␈↓ β␈εn␈↓ ␈εb
␈β
9␈↓ α␈εαmin␈α␈us␈↓ αu␈εα∂␈↓ αv␈ελq␈↓ β∪␈εαtimes␈α
(␈↓ ∧␈ελv␈↓ ∧≡␈ελv␈↓ ∧C␈εα.␈αε.␈αε.␈↓ ∧s␈ελv␈↓ ¬∀␈εα)␈↓ ¬,␈εα.␈α⊂This␈α
step␈α
(analogous␈α
to␈α
steps␈α
M3,␈α
M4,␈α
and␈α
M5
␈β
F␈↓ ∧⊂␈ε¬1␈↓ ∧.␈ε¬2␈↓ ¬α␈εn␈↓ ¬ ␈εb
␈β
d␈↓ α␈εαof␈αAlgorithm␈αM)␈αconsists␈αof␈αa␈αsimple␈αm␈α␈ultiplication␈αby␈αa␈αone-place␈αn␈α␈um␈α␈ber,
␈β∂␈↓ α␈εαcom␈α␈bined␈α
with␈α
a␈αsubtraction.␈αThe␈α
digits␈α(␈↓ π∀␈ελu␈↓ π5␈εα,␈↓ πE␈ελu␈↓ λ∩␈εα,␈↓ λ"␈εα.␈αε.␈αε.␈↓ λR␈εα,␈↓ λb␈ελu␈↓ 3␈εα)␈α
should␈α
be␈α
k␈α␈ept
␈β≥␈↓ π(␈εj␈↓ πZ␈εj␈↓ πg␈ε¬+1␈↓ λw␈εj␈↓ ∧␈ε¬+␈↓ !␈εn
␈β:␈↓ α␈εαpositiv␈α␈e;␈α∪if␈α⊂the␈α⊃result␈α⊃of␈α⊂this␈α⊃step␈α⊂is␈α⊃actually␈α⊂negativ␈α␈e,␈α∩(␈↓ ∨␈ελu␈↓ A␈ελu␈↓
∀␈εα.␈αε.␈αε.␈↓
D␈ελu␈↓ ∀␈εα)
␈βH␈↓ 4␈εj␈↓ V␈εj␈↓ c␈ε¬+1␈↓
X␈εj␈↓
f␈ε¬+␈↓ β␈εn␈↓ ␈εb
␈βa␈↓ εY␈εn␈↓ εk␈ε¬+␈α␈1
␈βf␈↓ α␈εαshould␈αbe␈αleft␈αas␈αthe␈αtrue␈αvalue␈αplus␈↓ εJ␈ελb␈↓ π⊗␈εα,␈αi.e.,␈αas␈αthe␈↓ λW␈ελb␈↓ λf␈εα's␈αcomplemen␈α␈t␈αof␈αthe
␈β⊃␈↓ α␈εαtrue␈αvalue,␈αand␈αa␈α\borro␈α␈w"␈αto␈αthe␈αleft␈αshould␈αbe␈αremem␈α␈bered.
␈βK␈↓ ↓H␈ε∩D5.␈↓ α␈εα[Test␈α∞remainder.]␈α≤Set␈↓ ∧w␈ελq␈↓ ¬≡␈ε⊗ ␈↓ ¬N␈εα∂␈↓ ¬N␈ελq␈↓ ¬←␈εα.␈α⊂If␈α∞the␈α
result␈α∞of␈α
step␈α∞D4␈α
was␈α∞negativ␈α␈e,␈α∞go␈α
to
␈βY␈↓ ¬∧␈εj
␈βv␈↓ α␈εαstep␈αD6;␈αotherwise␈αgo␈αon␈αto␈αstep␈αD7.
␈β
1␈↓ ↓H␈ε∩D6.␈↓ α␈εα[Add␈α
back.]␈α∪(The␈α probability␈α
that␈α this␈α
step␈α is␈α
necessary␈α is␈α
v␈α␈ery␈α small,␈α
on␈α the
␈β
\␈↓ α␈εαorder␈α
of␈α∞only␈α
3/␈↓ ∧␈ελb␈↓ ∧~␈εα,␈α∞see␈α
ex␈α␈ercise␈α
21;␈α∞test␈α
data␈α
that␈α∞activates␈α
this␈α
step␈α
should
␈β∞π␈↓ α␈εαtherefore␈α∞be␈α
speci|cally␈α
con␈α␈triv␈α␈ed␈α∞when␈α
debugging.)␈α⊃Decrease␈↓ k␈ελq␈↓
∪␈εαby␈α∞1,␈α
and
␈β∞∀␈↓ x␈εj
␈β∞2␈↓ α␈εαadd␈α (0␈↓ αm␈ελv␈↓ β␈ελv␈↓ β/␈εα.␈αε.␈αε.␈↓ β←␈ελv␈↓ ∧↓␈εα)␈↓ ∧"␈εαto␈α (␈↓ ∧W␈ελu␈↓ ∧y␈ελu␈↓ ¬F␈ελu␈↓ ε→␈εα.␈αε.␈αε.␈↓ εI␈ελu␈↓ π→␈εα)␈↓ π1␈εα.␈α(A␈α carry␈α will␈α occur␈α to␈α the␈α left␈αλof
␈β∞@␈↓ α⎇␈ε¬1␈↓ β≠␈ε¬2␈↓ βo␈εn␈↓ ∧
␈εb␈↓ ∧k␈εj␈↓ ¬
␈εj␈↓ ¬~␈ε¬+1␈↓ ¬Z␈εj␈↓ ¬g␈ε¬+2␈↓ ε]␈εj␈↓ εj␈ε¬+␈↓ ππ␈εn␈↓ π%␈εb
␈β∞]␈↓ α␈ελu␈↓ α.␈εα,␈α
and␈α
it␈α
should␈α
be␈α
ignored␈α
since␈α
it␈α
cancels␈α
with␈α
the␈α
\borro␈α␈w"␈α
that␈α occurred
␈β∞k␈↓ α!␈εj
␈β∂ ␈↓ α␈εαin␈αD4.)
␈β∂C␈↓ ↓H␈ε∩D7.␈↓ α␈εα[Loop␈αon␈↓ β$␈ελj␈↓ β4␈εα.]␈α~Increase␈↓ ∧l␈ελj␈↓ ¬λ␈εαby␈αone.␈αNo␈α␈w␈αif␈↓ ε⎇␈ελj␈↓ π↔␈ε⊗∀␈↓ πE␈ελm␈↓ πe␈εα,␈αgo␈αback␈αto␈αD3.
␈β∂⎇␈↓ ↓H␈ε∩D8.␈↓ α␈εα[Unnormalize.]␈α No␈α␈w␈α⊂(␈↓ ∧s␈ελq␈↓ ¬∂␈ελq␈↓ ¬0␈εα.␈αε.␈αε.␈↓ ¬`␈ελq␈↓ επ␈εα)␈↓ ε/␈εαis␈α⊂the␈α⊂desired␈α⊂quotien␈α␈t,␈α⊃and␈α⊂the␈α∂desired
␈β⊂␈↓ ¬␈ε¬0␈↓ ¬≤␈ε¬1␈↓ ¬m␈εm␈↓ ε∪␈εb
␈β⊂(␈↓ α␈εαremainder␈αmay␈αbe␈αobtained␈αby␈αdividing␈α(␈↓ π⊗␈ελu␈↓ πv␈εα.␈αε.␈αε.␈↓ λ&␈ελu␈↓ β␈εα)␈↓ '␈εαby␈↓ [␈ελd␈↓ o␈εα.
␈β⊂-␈↓
!␈∧⊂-
!≠∂
␈β⊂6␈↓ π+␈εm␈↓ πE␈ε¬+␈α␈1␈↓ λ:␈εm␈↓ λT␈ε¬+␈↓ λq␈εn␈↓ ∂␈εb
␈β⊂q␈↓ α␈εαThe␈α
represen␈α␈tation␈α
of␈αAlgorithm␈α
D␈α
as␈α
a␈ε∃␈αMIX␈εα␈αprogram␈α
has␈α
sev␈α␈eral␈α
poin␈α␈ts␈αof
␈β⊃≤␈↓ ↓H␈εαin␈α␈terest:
␈β∪(
␈β↓Y␈↓ ↓H␈εα256␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα&␈↓ ↓H␈ε∩Program␈αD␈εα␈α(␈ε∂Division␈αof␈αnonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πβ␈εα)␈ε∩.␈εα␈α↔The␈αcon␈α␈v␈α␈en␈α␈tions␈αof␈α
this␈αprogram
␈βαQ␈↓ ↓H␈εαare␈αanalogous␈α
to␈αProgram␈α
A␈↓ ¬∧␈εα;␈↓ ¬≠␈εαrI␈↓ ¬5␈εα1␈ε⊗␈α⊃␈↓ ε↓␈ελi␈↓ ε∂␈εα,␈↓ ε%␈εαrI␈↓ ε?␈εα2␈ε⊗␈α⊃␈↓ π␈ελj␈↓ π$␈ε⊗␈␈↓ πP␈ελm␈↓ πp␈εα,␈↓ λπ␈εαrI␈↓ λ!␈εα3␈ε⊗␈α⊃␈↓ λm␈ελi␈↓ β␈εα+␈↓ /␈ελj␈↓ @␈εα.␈α
Steps␈α
D1␈αand
␈βα⎇␈↓ ↓H␈εαD8␈αhav␈α␈e␈αbeen␈αleft␈αas␈αex␈α␈ercises.
␈ββM␈↓ α-␈ε∃D1␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃OF␈α␈LO
␈ββP␈↓ ↓Z␈ε 0␈α␈01␈↓ ε&␈εβ1␈↓ πG␈ε⊂D1␈α␈.␈αNo␈α␈rmalize.
␈ββj␈↓ πG␈∧βjπGα↓]
␈ββw␈↓ ↓e␈ε↔↓␈αε↓␈α¬↓␈↓ πG␈εβ(S␈α␈ee␈αex␈α␈e␈α␈rcise␈α25␈α␈)
␈β∧≤␈↓ α-␈ε∃D2␈↓ β␈ε∃E␈α␈NN2␈↓ β|␈ε∃M
␈β∧∨␈↓ ↓Z␈ε 0␈α␈39␈↓ ε&␈εβ1␈↓ πG␈ε⊂D2␈α␈.␈αIn␈α␈i␈α↓tia␈α␈l␈α↓ize␈↓ ∂␈ε j␈↓ ≡␈ε⊂.
␈β∧9␈↓ πG␈∧∧9πGα↓H␈↓ ⊗␈∧∧9 ⊗α⊃
␈β∧D␈↓ β␈ε∃S␈α␈TZ␈↓ β|␈ε∃V
␈β∧G␈↓ ↓Z␈ε 0␈α␈40␈↓ ε&␈εβ1␈↓ πG␈εβS␈α␈et␈↓ λ␈ε v␈↓ λ%␈ε↔ ␈εβ␈α 0,␈αfor␈αcon␈α}v␈α␈e␈α␈nienc␈α␈e␈αin␈αD4.
␈β∧Q␈↓ λ∂␈εε0
␈β∧k␈↓ α-␈ε∃D3␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃U+␈α␈M,2␈α␈(1:␈α␈5)
␈β∧n␈↓ ↓Z␈ε 0␈α␈41␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D3␈α␈.␈αCa␈α␈l␈α↓c␈α␈ulate␈↓ ≠␈εβ∂␈↓ ≤␈ε q␈↓ 5␈ε⊂.
␈β¬λ␈↓ πG␈∧¬λπGα↓↑␈↓ 2␈∧¬λ 2α
␈β¬∪␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃U+␈α␈M+1␈α␈,2
␈β¬⊗␈↓ ↓Z␈ε 0␈α␈42␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβrAX␈↓ λ
␈ε↔ ␈↓ λ8␈ε u␈↓ λW␈ε b␈↓ λk␈εβ+␈↓ ∀␈ε u␈↓ Y␈εβ.
␈β¬ ␈↓ λK␈εj␈↓ '␈εj␈↓ 3␈εε+␈α↓1
␈β¬:␈↓ β␈ε∃D␈α␈IV␈↓ β|␈ε∃V+␈α␈1
␈β¬=␈↓ ↓Z␈ε 0␈α␈43␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈α
b␈↓ λ-␈ε r␈↓ λ;␈ε A␈↓ λQ␈ε X␈↓ λm␈εβ/␈↓ λ}␈ε v␈↓ →␈ε↔c␈εβ.
␈β¬H␈↓ ␈εε1
␈β¬b␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃1F
␈β¬e␈↓ ↓Z␈ε 0␈α␈44␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβJ␈α␈ump␈α
i␈α↓f␈αq␈α␈uotien␈α}t␈↓ C␈εβ=␈↓ n␈ε b␈↓ {␈εβ.
␈βε
␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃QH␈α␈AT
␈βε
␈↓ ↓Z␈ε 0␈α␈45␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πF␈εβ∂␈↓ πG␈ε q␈↓ π←␈ε↔ ␈↓ λ ␈εβrA␈↓ λ.␈εβ.
␈βε1␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃RH␈α␈AT
␈βε4␈↓ ↓Z␈ε 0␈α␈46␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πF␈εβ∂␈↓ πG␈ε r␈↓ π←␈ε↔ ␈↓ λ ␈ε u␈↓ λ(␈ε b␈↓ λ=␈εβ+␈↓ λf␈ε u␈↓ 2␈ε↔␈␈↓ Z␈εβ∂␈↓ [␈ε q␈↓ j␈ε v
␈βε?␈↓ λ≤␈εj␈↓ λy␈εj␈↓ ¬␈εε+1␈↓ x␈εε1
␈βεY␈↓ β␈ε∃J␈α␈MP␈↓ β|␈ε∃2F
␈βε\␈↓ ↓Z␈ε 0␈α␈47␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ λ∂␈εβ=␈α (␈↓ λD␈ε u␈↓ λd␈ε b␈↓ λx␈εβ+␈↓ !␈ε u␈↓ f␈εβ)␈↓ w␈εβm␈α␈od␈↓
;␈ε v␈↓
V␈εβ.
␈βεf␈↓ λX␈εj␈↓ 4␈εj␈↓ @␈εε+1␈↓
J␈εε1
␈βπ␈↓ α-␈ε∃1H␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃WM␈α␈1
␈βπβ␈↓ ↓Z␈ε 0␈α␈48␈↓ πG␈εβrX␈↓ πu␈ε↔ ␈↓ λ ␈ε b␈↓ λ4␈ε↔␈␈εβ␈αλ1.
␈βπ(␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃U+␈α␈M+1␈α␈,2
␈βπ+␈↓ ↓Z␈ε 0␈α␈49␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈↓ λ ␈ε u␈↓ λe␈εβ.␈α(Here␈↓ R␈ε u␈↓ z␈εβ=␈↓
%␈ε v␈↓
@␈εβ.)
␈βπ6␈↓ λ3␈εj␈↓ λ?␈εε+1␈↓ e␈εj␈↓
3␈εε1
␈βπP␈↓ β␈ε∃J␈α␈MP␈↓ β|␈ε∃4F
␈βπS␈↓ ↓Z␈ε 0␈α␈50
␈βπw␈↓ α-␈ε∃3H␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃QH␈α␈AT
␈βπz␈↓ ↓Z␈ε 0␈α␈51␈↓ ε"␈ε E
␈βλ∨␈↓ β␈ε∃D␈α␈ECX␈↓ β|␈ε∃1
␈βλ"␈↓ ↓Z␈ε 0␈α␈52␈↓ ε"␈ε E␈↓ πG␈εβDec␈α␈rease␈↓ λQ␈εβ∂␈↓ λR␈ε q␈↓ λk␈εβby␈αo␈α␈ne.
␈βλF␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃RH␈α␈AT
␈βλI␈↓ ↓Z␈ε 0␈α␈53␈↓ ε"␈ε E␈↓ πG␈εβAd␈α␈just␈↓ λ3␈εβ∂␈↓ λ4␈ε r␈↓ λN␈εβa␈α␈ccord␈α␈ing␈α␈l␈α↓y␈α␈:
␈βλn␈↓ α-␈ε∃4H␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃QH␈α␈AT
␈βλq␈↓ ↓Z␈ε 0␈α␈54␈↓ ε"␈ε E␈↓ πF␈εβ∂␈↓ πG␈ε q␈↓ π←␈ε↔ ␈↓ λ ␈εβrX␈↓ λ.␈εβ.
␈β ⊗␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃V+␈α␈1
␈β →␈↓ ↓Z␈ε 0␈α␈55␈↓ ε"␈ε E␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈↓ λ ␈εβrA␈↓ λL␈εβ+␈↓ λu␈ε v␈↓ ⊂␈εβ.
␈β #␈↓ β␈εε1
␈β =␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃D4
␈β @␈↓ ↓Z␈ε 0␈α␈56␈↓ ε"␈ε E␈↓ πG␈εβ(If␈↓ πq␈εβ∂␈↓ πs␈εβr␈↓ λ␈εβwi␈α↓ll␈αbe␈ε↔␈α∃␈↓ !␈ε b␈↓ .␈εβ,␈↓ C␈ε v␈↓ ]␈εβ∂␈↓ ↑␈ε q␈↓ x␈εβwill␈αb␈α␈e␈α<␈↓
␈εβ∂␈↓ ∞␈ε r␈↓ ≤␈ε b␈↓ *␈εβ.)
␈β K␈↓ Q␈εε2
␈β e␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃RH␈α␈AT
␈β h␈↓ ↓Z␈ε 0␈α␈57␈↓ ε"␈ε E␈↓ πF␈εβ∂␈↓ πG␈ε r␈↓ π←␈ε↔ ␈↓ λ ␈εβrA␈↓ λ.␈εβ.
␈β
␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃QH␈α␈AT
␈β
∂␈↓ ↓Z␈ε 0␈α␈58␈↓ ε"␈ε E
␈β
4␈↓ α-␈ε∃2H␈↓ β␈ε∃M␈α␈UL␈↓ β|␈ε∃V+␈α␈2
␈β
7␈↓ ↓Z␈ε 0␈α␈59␈↓ ¬Y␈ε M␈↓ εβ␈εβ+␈↓ ε+␈ε E␈↓ εJ␈εβ+␈αλ1
␈β
\␈↓ β␈ε∃C␈α␈MPA␈↓ β|␈ε∃RH␈α␈AT
␈β
←␈↓ ↓Z␈ε 0␈α␈60␈↓ ¬Y␈ε M␈↓ εβ␈εβ+␈↓ ε+␈ε E␈↓ εJ␈εβ+␈αλ1␈↓ πG␈εβTest␈αif␈↓ λ2␈ε v␈↓ λM␈εβ∂␈↓ λM␈ε q␈↓ λe␈ε↔∀␈↓ ∂␈εβ∂␈↓ ⊂␈ε r␈↓ ∨␈ε b␈↓ 3␈εβ+␈↓ \␈ε u␈↓
!␈εβ.
␈β
i␈↓ λA␈εε2␈↓ o␈εj␈↓ {␈εε+2
␈ββ␈↓ β␈ε∃J␈α␈L␈↓ β|␈ε∃D4
␈βε␈↓ ↓Z␈ε 0␈α␈61␈↓ ¬Y␈ε M␈↓ εβ␈εβ+␈↓ ε+␈ε E␈↓ εJ␈εβ+␈αλ1
␈β+␈↓ β␈ε∃J␈α␈G␈↓ β|␈ε∃3B
␈β.␈↓ ↓Z␈ε 0␈α␈62␈↓ ε"␈ε E
␈βR␈↓ β␈ε∃C␈α␈MPX␈↓ β|␈ε∃U+␈α␈M+2␈α␈,2
␈βU␈↓ ↓Z␈ε 0␈α␈63
␈βz␈↓ β␈ε∃J␈α␈G␈↓ β|␈ε∃3B
␈β⎇␈↓ ↓Z␈ε 0␈α␈64␈↓ πG␈εβIf␈αno␈α␈t,␈↓ λ,␈εβ∂␈↓ λ-␈ε q␈↓ λF␈εβi␈α↓s␈αto␈α␈o␈αlarge␈α␈.
␈β"␈↓ α-␈ε∃D4␈↓ β␈ε∃E␈α␈NTX␈↓ β|␈ε∃1
␈β%␈↓ ↓Z␈ε 0␈α␈65␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D4␈α␈.␈αM␈α␈ulti␈↓ λU␈ε⊂p␈↓ λh␈ε⊂l␈↓ λq␈ε⊂y␈↓ ∂␈ε⊂a␈α␈nd␈α
sub␈α␈tract.
␈β>␈↓ πG␈∧>πGα↓∂␈↓ λ]␈∧>λ]α_␈↓ λ|␈∧>λ|α↓U
␈βI␈↓ β␈ε∃E␈α␈NT1␈↓ β|␈ε∃N
␈βL␈↓ ↓Z␈ε 0␈α␈66␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε i␈↓ π]␈ε↔ ␈↓ λπ␈ε n␈↓ λ≠␈εβ.
␈βq␈↓ β␈ε∃E␈α␈NT3␈↓ β|␈ε∃M+␈α␈N,2
␈βt␈↓ ↓Z␈ε 0␈α␈67␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβ(␈↓ πR␈ε i␈↓ πf␈εβ+␈↓ λ∂␈ε j␈↓ λ≡␈εβ)␈ε↔␈α ␈εβ␈α
(␈↓ λh␈ε n␈↓ β␈εβ+␈↓ ,␈ε j␈↓ ;␈εβ).
␈β
_␈↓ α-␈ε∃2H␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃CA␈α␈RRY
␈β
≠␈↓ ↓Z␈ε 0␈α␈68␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβ(Here␈α1␈ε↔␈απ␈␈↓ λ`␈ε b␈↓ λw␈εβ<␈↓ !␈εβrX␈↓ P␈ε↔∀␈εβ␈α +␈α↓1␈α␈.)
␈β
@␈↓ β␈ε∃L␈α␈DAN␈↓ β|␈ε∃V,␈α␈1
␈β
C␈↓ ↓Z␈ε 0␈α␈69␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β
h␈↓ β␈ε∃M␈α␈UL␈↓ β|␈ε∃QH␈α␈AT
␈β
k␈↓ ↓Z␈ε 0␈α␈70␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβrAX␈↓ λ
␈ε↔ ␈α
␈␈↓ λX␈εβ∂␈↓ λY␈ε q␈↓ λh␈ε v␈↓ ↓␈εβ.
␈β
u␈↓ λv␈εi
␈β∞∂␈↓ β␈ε∃S␈α␈LC␈↓ β|␈ε∃5
␈β∞∩␈↓ ↓Z␈ε 0␈α␈71␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβIn␈α␈t␈α␈ercha␈α␈ng␈α␈e␈↓ λ{␈εβrA␈↓ )␈ε↔$␈↓ T␈εβrX␈↓ y␈εβ.
␈β∞7␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃CA␈α␈RRY
␈β∞:␈↓ ↓Z␈ε 0␈α␈72␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈αth␈α␈e␈αcon␈α}tri␈α↓b␈α␈ut␈α␈i␈α↓o␈α␈n␈αfrom␈αt␈α␈he
␈β∞↑␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃*+␈α␈2
␈β∞a␈↓ ↓Z␈ε 0␈α␈73␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ λ∂␈εβd␈α␈i␈α↓g␈α␈it␈αt␈α␈o␈αthe␈αrig␈α␈h␈α␈t,␈αplus␈α1␈α␈.
␈β∂ε␈↓ β␈ε∃D␈α␈ECX␈↓ β|␈ε∃1
␈β∂ ␈↓ ↓Z␈ε 0␈α␈74␈↓ ε ␈ε K␈↓ πG␈εβIf␈αsum␈α
i␈α↓s␈ε↔␈α∀␈α ␈␈↓ ≤␈ε b␈↓ )␈εβ,␈αcarry␈ε↔␈α
␈␈εβ1.
␈β∂.␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃U,␈α␈3
␈β∂1␈↓ ↓Z␈ε 0␈α␈77␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈↓ λ∂␈ε u␈↓ λR␈εβ.
␈β∂;␈↓ λ"␈εi␈↓ λ-␈εε+␈↓ λF␈εj
␈β∂U␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃WM␈α␈1
␈β∂X␈↓ ↓Z␈ε 0␈α␈76␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈↓ λ∂␈ε b␈↓ λ$␈ε↔␈␈εβ␈απ1␈αto␈αfor␈α␈ce␈α+␈αsig␈α␈n.
␈β∂⎇␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃*+␈α␈2
␈β⊂␈↓ ↓Z␈ε 0␈α␈77␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβIf␈αno␈α
o␈α␈v␈α␈e␈α␈r⎇o␈α␈w,␈αcar␈α␈ry␈ε↔␈α␈␈εβ1.
␈β⊂#␈↓ ε8␈ε~0
␈β⊂$␈↓ β␈ε∃I␈α␈NCX␈↓ β|␈ε∃1
␈β⊂'␈↓ ↓Z␈ε 0␈α␈78␈↓ ε≥␈ε K␈↓ πG␈εβrX␈↓ πu␈ε↔⊃␈↓ λ ␈εβc␈α␈arry␈↓ λs␈εβ+␈αλ1␈α␈.
␈β⊂L␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃U,␈α␈3
␈β⊂O␈↓ ↓Z␈ε 0␈α␈79␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈ε u␈↓ λ∪␈ε↔ ␈↓ λ>␈εβrA␈↓ λn␈εβ(ma␈α␈y␈αb␈α␈e␈αmin␈α␈u␈α␈s␈αzero).
␈β⊂Z␈↓ πZ␈εi␈↓ πe␈εε+␈↓ π}␈εj
␈β⊂t␈↓ β␈ε∃D␈α␈EC1␈↓ β|␈ε∃1
␈β⊂w␈↓ ↓Z␈ε 0␈α␈80␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β⊃≠␈↓ β␈ε∃D␈α␈EC3␈↓ β|␈ε∃1
␈β⊃≡␈↓ ↓Z␈ε 0␈α␈81␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα257
␈βα'␈↓ β␈ε∃J␈α␈1NN␈↓ β|␈ε∃2B
␈βα*␈↓ ↓Z␈ε 0␈α␈82␈↓ ¬6␈εβ(␈↓ ¬A␈ε M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβRep␈α␈eat␈αfo␈α␈r␈↓ λl␈ε n␈↓
␈ε↔∃␈↓ 4␈ε i␈↓ J␈ε↔∃␈εβ␈α
0␈α␈.
␈βαO␈↓ α-␈ε∃D5␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃QH␈α␈AT
␈βαR␈↓ ↓Z␈ε 0␈α␈83␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D5␈α␈.␈αTest␈αre␈α␈main␈α␈der.
␈βαl␈↓ πG␈∧αlπGαα'
␈βαv␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃Q+␈α␈M,2
␈βαy␈↓ ↓Z␈ε 0␈α␈84␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβS␈α␈et␈↓ λ␈ε q␈↓ λ"␈ε↔ ␈↓ λK␈εβ∂␈↓ λL␈ε q␈↓ λ[␈εβ.
␈ββ∧␈↓ λ␈εj
␈ββ≡␈↓ β␈ε∃J␈α␈XP␈↓ β|␈ε∃D7
␈ββ!␈↓ ↓Z␈ε 0␈α␈85␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβ(Here␈↓ λ ␈εβrX␈↓ λN␈εβ=␈α 0␈αor␈α1,␈αsinc␈α␈e␈↓
3␈ε v␈↓
X␈εβ=␈α 0.)
␈ββ,␈↓
B␈εε0
␈ββF␈↓ α-␈ε∃D6␈↓ β␈ε∃D␈α␈ECA␈↓ β|␈ε∃1
␈ββI␈↓ ↓Z␈ε 0␈α␈86␈↓ πG␈ε⊂D6␈α␈.␈αAd␈α␈d␈αb␈α␈ack␈α␈.
␈ββb␈↓ πG␈∧βbπGα↓U
␈ββm␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃Q+␈α␈M,2
␈ββp␈↓ ↓Z␈ε 0␈α␈87␈↓ πG␈εβS␈α␈et␈↓ λ␈ε q␈↓ λ"␈ε↔ ␈↓ λK␈εβ∂␈↓ λL␈ε q␈↓ λb␈ε↔␈␈εβ␈αλ1.
␈ββ{␈↓ λ␈εj
␈β∧∃␈↓ β␈ε∃E␈α␈NT1␈↓ β|␈ε∃N
␈β∧_␈↓ ↓Z␈ε 0␈α␈88␈↓ πG␈ε i␈↓ π]␈ε↔ ␈↓ λπ␈ε n␈↓ λ≠␈εβ.
␈β∧<␈↓ β␈ε∃E␈α␈NT3␈↓ β|␈ε∃M+␈α␈N,2
␈β∧?␈↓ ↓Z␈ε 0␈α␈89␈↓ πG␈εβ(␈↓ πR␈ε i␈↓ πf␈εβ+␈↓ λ∂␈ε j␈↓ λ≡␈εβ)␈ε↔␈α ␈εβ␈α
(␈↓ λh␈ε n␈↓ β␈εβ+␈↓ ,␈ε j␈↓ ;␈εβ).
␈β∧d␈↓ α-␈ε∃1H␈↓ β␈ε∃E␈α␈NTA␈↓ β|␈ε∃0
␈β∧g␈↓ ↓Z␈ε 0␈α␈90␈↓ πG␈εβ(Th␈α␈i␈α↓s␈αis␈αessen␈α}tiall␈α↓y␈α
Progra␈α␈m␈αA.)
␈β¬␈↓ α-␈ε∃2H␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃U,␈α␈3
␈β¬∂␈↓ ↓Z␈ε 0␈α␈91
␈β¬3␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃V,␈α␈1
␈β¬6␈↓ ↓Z␈ε 0␈α␈92
␈β¬[␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃U,␈α␈3
␈β¬↑␈↓ ↓Z␈ε 0␈α␈93
␈βεα␈↓ β␈ε∃D␈α␈EC1␈↓ β|␈ε∃1
␈βε¬␈↓ ↓Z␈ε 0␈α␈94
␈βε*␈↓ β␈ε∃D␈α␈EC3␈↓ β|␈ε∃1
␈βε-␈↓ ↓Z␈ε 0␈α␈95
␈βεR␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃1B
␈βεU␈↓ ↓Z␈ε 0␈α␈96
␈βεy␈↓ β␈ε∃E␈α␈NTA␈↓ β|␈ε∃1
␈βε|␈↓ ↓Z␈ε 0␈α␈97
␈βπ!␈↓ β␈ε∃J␈α␈1NN␈↓ β|␈ε∃2B
␈βπ$␈↓ ↓Z␈ε 0␈α␈98
␈βπH␈↓ α-␈ε∃D7␈↓ β␈ε∃I␈α␈NC2␈↓ β|␈ε∃1
␈βπK␈↓ ↓Z␈ε 0␈α␈99␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D7␈α␈.␈αLoo␈↓ λ=␈ε⊂p␈↓ λ[␈ε⊂o␈α␈n␈↓ ␈ε j␈↓ _␈ε⊂.
␈βπe␈↓ πG␈∧πeπGαw␈↓ λE␈∧πeλEαE␈↓ ⊃␈∧πe ⊃α⊃
␈βπp␈↓ β␈ε∃J␈α␈2NP␈↓ β|␈ε∃D3
␈βπs␈↓ ↓Z␈ε 1␈α␈00␈↓ ¬|␈ε M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβRep␈α␈eat␈αfo␈α␈r␈α0␈ε↔␈α ∀␈↓ 1␈ε j␈↓ I␈ε↔∀␈↓ t␈ε m␈↓
⊃␈εβ.
␈βλ_␈↓ α-␈ε∃D8
␈βλ≠␈↓ ↓Z␈ε 1␈α␈01␈↓ β␈ε↔↓␈α¬↓␈αε↓␈↓ πG␈εβ(S␈α␈ee␈αex␈α␈e␈α␈rcise␈α26␈α␈)
␈βλ≥␈↓ Y␈∧λ≥ Y≠∂
␈βλS␈↓ α␈εαNote␈αho␈α␈w␈αeasily␈αthe␈αrather␈αcomplex-appearing␈αcalculations␈αand␈αdecisions␈αof
␈βλ}␈↓ ↓H␈εαstep␈αD3␈αcan␈αbe␈αhandled␈αinside␈αthe␈αmachine.␈αNote␈αalso␈αthat␈αthe␈αprogram␈αfor␈αstep
␈β )␈↓ ↓H␈εαD4␈α∂is␈α∞analogous␈α∂to␈α∂Program␈α∂M␈↓ ¬8␈εα,␈α⊂ex␈α␈cept␈α∞that␈α∂the␈α∂ideas␈α∂of␈α∂Program␈α∂S␈α∂hav␈α␈e␈α∞also
␈β U␈↓ ↓H␈εαbeen␈αincorporated.
␈β
␈↓ α␈εαThe␈αrunning␈α
time␈αfor␈αProgram␈αD␈α
can␈αbe␈αestimated␈α
by␈αconsidering␈αthe␈α
quan-
␈β
&␈↓ ∧N␈ε→0
␈β
+␈↓ ↓H␈εαtities␈↓ α∨␈ελM␈↓ αE␈εα,␈↓ αX␈ελN␈↓ αz␈εα,␈↓ β∞␈ελE␈↓ β'␈εα,␈↓ β;␈ελK␈↓ βY␈εα,␈α
and␈↓ ∧0␈ελK␈↓ ∧←␈εαsho␈α␈wn␈α in␈α the␈α program.␈α(These␈α quan␈α␈tities␈α ignore␈α sev␈α␈eral
␈β
V␈↓ ↓H␈εαsituations␈αλthat␈αλoccur␈α only␈αλwith␈αλv␈α␈ery␈α lo␈α␈w␈αλprobability;␈α for␈α example,␈α w␈α␈e␈αλmay␈αλassume
␈β↓␈↓ ↓H␈εαthat␈α∞lines␈α∞048↑050,␈α∂063↑064,␈α∂and␈α∂step␈α∞D6␈α∞are␈α∂nev␈α␈er␈α∞ex␈α␈ecuted.)␈α∪Here␈↓
↔␈ελM␈↓
G␈εα+␈α 1␈α∞is
␈β-␈↓ ↓H␈εαthe␈α
n␈α␈um␈α␈ber␈α
of␈α∞w␈α␈ords␈α
in␈α∞the␈α
quotien␈α␈t;␈↓ ε"␈ελN␈↓ εQ␈εαis␈α∞the␈α
n␈α␈um␈α␈ber␈α∞of␈α
w␈α␈ords␈α∞in␈α
the␈α
divisor;
␈βS␈↓
f␈ε→0
␈βX␈↓ ↓H␈ελE␈↓ ↓p␈εαis␈α⊂the␈α⊂n␈α␈um␈α␈ber␈α∂of␈α⊂times␈↓ ∧o␈εα∂␈↓ ∧p␈ελq␈↓ ¬⊂␈εαis␈α∂adjusted␈α⊂do␈α␈wn␈α␈wards␈α∂in␈α⊂step␈α∂D3;␈↓ Q␈ελK␈↓ }␈εαand␈↓
H␈ελK␈↓
|␈εαare
␈ββ␈↓ ↓H␈εαthe␈αn␈α␈um␈α␈ber␈αof␈αtimes␈αcertain␈α\carry"␈αadjustmen␈α␈ts␈αare␈αmade␈αduring␈αthe␈αm␈α␈ultiply-
␈β)␈↓ ε:␈ε→0
␈β.␈↓ ↓H␈εαsubtract␈αloop.␈αIf␈αw␈α␈e␈αassume␈αthat␈↓ ¬L␈ελK␈↓ ¬q␈εα+␈↓ ε≤␈ελK␈↓ εM␈εαis␈αappro␈α␈ximately␈α(␈↓ λj␈ελN␈↓ ∪␈εα+␈απ1)(␈↓ h␈ελM␈↓
∀␈εα+␈απ1),␈αand
␈βV␈↓ ∧R␈ε¬1
␈βY␈↓ ↓H␈εαthat␈↓ α⊗␈ελE␈↓ α;␈εαis␈αappro␈α␈ximately␈↓ ∧d␈ελM␈↓ ¬
␈εα,␈αw␈α␈e␈αget␈αa␈αtotal␈αrunning␈αtime␈αof␈αappro␈α␈ximately
␈βj␈↓ ∧R␈∧j∧Rα∂
␈βl␈↓ ∧R␈ε¬2
␈β
$␈↓ ∧T␈εα30␈↓ ∧x␈ελM␈↓ ¬≥␈ελN␈↓ ¬G␈εα+␈αλ30␈↓ ε↔␈ελN␈↓ εA␈εα+␈αλ89␈↓ π⊃␈ελM␈↓ π>␈εα+␈αλ111
␈β
n␈↓ ↓H␈εαcy␈α␈cles,␈α
plus␈α
67␈↓ β%␈ελN␈↓ βK␈εα+␈αε235␈↓ ∧+␈ελM␈↓ ∧U␈εα+␈α¬4␈α
more␈α
if␈↓ ε∩␈ελd␈↓ ε0␈εα>␈α
1.␈α(The␈α
program␈α
segmen␈α␈ts␈α
of␈α ex␈α␈ercises
␈β∞→␈↓ ↓H␈εα25␈απand␈απ26␈απare␈αλincluded␈απin␈απthese␈απtotals.)␈αWhen␈↓ εz␈ελM␈↓ π'␈εαand␈↓ πh␈ελN␈↓ λ⊃␈εαare␈απlarge,␈α this␈απis␈απonly␈απabout
␈β∞E␈↓ ↓H␈εαsev␈α␈en␈α
percen␈α␈t␈α
longer␈αthan␈α
the␈α
time␈α
Program␈αM␈α
tak␈α␈es␈α
to␈αm␈α␈ultiply␈α
the␈α
quotien␈α␈t␈α
by
␈β∞p␈↓ ↓H␈εαthe␈αdivisor.
␈β∂≠␈↓ α␈εαFurther␈α∞commen␈α␈tary␈α
on␈α∞Algorithm␈α∞D␈α
appears␈α∞in␈α∞the␈α
ex␈α␈ercises␈α∞at␈α∞the␈α
close
␈β∂F␈↓ ↓H␈εαof␈αthis␈αsection.
␈β∂y␈↓ α␈εαIt␈αλis␈απpossible␈αλto␈απdebug␈αλprograms␈αλfor␈απm␈α␈ultiple-precision␈αλarithmetic␈απby␈αλusing␈απthe
␈β⊂%␈↓ ↓H␈εαm␈α␈ultiplication␈αand␈α
addition␈αroutines␈α
to␈αcheck␈α
the␈αresult␈α
of␈αthe␈α
division␈αroutine,
␈β⊂P␈↓ ↓H␈εαetc.␈αThe␈αfollo␈α␈wing␈αtype␈αof␈αtest␈αdata␈αis␈αoccasionally␈αuseful:
␈β⊃∀␈↓ ∧␈εm␈↓ ¬⊃␈εn␈↓ ε:␈εm␈↓ εT␈ε¬+␈↓ εq␈εn␈↓ πD␈εn␈↓ λ↔␈εm
␈β⊃~␈↓ βs␈εα(␈↓ β␈␈ελt␈↓ ∧.␈ε⊗␈␈εα␈αλ1)(␈↓ ¬∧␈ελt␈↓ ¬+␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ ε-␈ελt␈↓ π␈ε⊗␈␈↓ π7␈ελt␈↓ π↑␈ε⊗␈␈↓ λ
␈ελt␈↓ λ9␈εα+␈αλ1.
␈β∪(
␈β↓Y␈↓ ↓H␈εα258␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα(␈↓ ↓H␈εαIf␈↓ ↓l␈ελm␈↓ α∃␈εα<␈↓ αC␈ελn␈↓ αY␈εα,␈αthis␈αn␈α␈um␈α␈ber␈αhas␈αthe␈αradix-␈↓ ε∪␈ελt␈↓ ε,␈εαexpansion
␈ββ↓␈↓ α≠␈εα(␈↓ α'␈ελt␈↓ α<␈ε⊗␈␈εα␈αλ1)␈↓ β*␈εα.␈αε.␈αε.␈↓ βx␈εα(␈↓ ∧∧␈ελt␈↓ ∧~␈ε⊗␈␈εα␈αλ1)␈↓ ¬λ␈εα(␈↓ ¬∀␈ελt␈↓ ¬)␈ε⊗␈␈εα␈αλ2)␈↓ ε↔␈εα(␈↓ ε#␈ελt␈↓ ε8␈ε⊗␈␈εα␈αλ1)␈↓ π&␈εα.␈αε.␈αε.␈↓ πt␈εα(␈↓ λ␈ελt␈↓ λ∃␈ε⊗␈␈εα␈αλ1)␈↓ β␈εα0␈↓ 9␈εα.␈αε.␈αε.␈↓
π␈εα0␈↓
=␈εα1;
␈ββ+␈↓ α≠␈ε↓|␈↓ β/␈ε↓{z␈↓ ∧S␈ε↓⎇␈↓ ε↔␈ε↓|␈↓ π*␈ε↓{␈α↓z␈↓ λN␈ε↓⎇␈↓ β␈ε↓|␈↓ =␈ε↓{␈α↓z␈↓
λ␈ε↓⎇
␈ββA␈↓ α,␈∧βAα,ε↓∧␈↓ βP␈∧βAβPε↓∧␈↓ ε'␈∧βAε'ε↓∧␈↓ πK␈∧βAπKε↓∧␈↓ ∪␈∧βA ∪ε+␈↓ ↑␈∧βA ↑ε+
␈ββW␈↓ αX␈ελm␈↓ α␈␈ε⊗␈␈εα␈αλ1␈αplaces␈↓ εQ␈ελn␈↓ εo␈ε⊗␈␈↓ π≠␈ελm␈↓ πF␈εαplaces␈↓ λf␈ελm␈↓
␈ε⊗␈␈εα␈αλ1␈αplaces
␈β∧1␈↓ βN␈ε¬3␈↓ ∧c␈ε¬5
␈β∧6␈↓ ↓H␈εαfor␈α∂example,␈α∂(1␈↓ β<␈εα0␈↓ βg␈ε⊗␈␈εα␈α
1)(1␈↓ ∧Q␈εα0␈↓ ∧{␈ε⊗␈␈εα␈α
1)␈α∂=␈α∂99899001.␈α∀In␈α∂the␈α∂case␈α∂of␈α∂Program␈α∂D␈↓
T␈εα,␈α⊂it␈α∞is
␈β∧a␈↓ ↓H␈εαalso␈α
necessary␈αto␈α|nd␈α
some␈αtest␈αcases␈αthat␈α
cause␈αthe␈αrarely␈α
ex␈α␈ecuted␈αparts␈αof␈α
the
␈β¬␈↓ ↓H␈εαprogram␈α
to␈α∞be␈α
ex␈α␈ercised;␈α∂some␈α
portions␈α∞of␈α
that␈α∞program␈α
w␈α␈ould␈α∞probably␈α
nev␈α␈er
␈β¬8␈↓ ↓H␈εαget␈αtested␈αev␈α␈en␈αif␈αa␈αmillion␈αrandom␈αtest␈αcases␈αw␈α␈ere␈αtried.
␈β¬e␈↓ α␈εαNo␈α␈w␈αthat␈αw␈α␈e␈αhav␈α␈e␈αseen␈αho␈α␈w␈αto␈αoperate␈αwith␈αsigned-magnitude␈αn␈α␈um␈α␈bers,␈αlet
␈βε⊃␈↓ ↓H␈εαus␈αconsider␈α
what␈α
approach␈α
should␈αbe␈α
tak␈α␈en␈α
to␈α
the␈αsame␈α
problems␈α
when␈α
a␈αcom-
␈βε<␈↓ ↓H␈εαputer␈αwith␈αcomplemen␈α␈t␈αnotation␈αis␈αbeing␈αused.␈αFor␈αt␈α␈w␈α␈o's␈αcomplemen␈α␈t␈αand␈αones'
␈βεg␈↓ ↓H␈εαcomplemen␈α␈t␈α
notations,␈αit␈α
is␈α
best␈α
to␈αlet␈α
the␈α
radix␈↓ π:␈ελb␈↓ πR␈εαbe␈ε∂␈αone-half␈εα␈α
the␈α
w␈α␈ord␈αsize;␈α
th␈α␈us
␈βπ
␈↓ π8␈ε¬3␈α↓1
␈βπ∩␈↓ ↓H␈εαfor␈αa␈α
32-bit␈αcomputer␈α
w␈α␈ord␈αw␈α␈e␈αw␈α␈ould␈α
use␈↓ ε↑␈ελb␈↓ εx␈εα=␈↓ π&␈εα2␈↓ πb␈εαin␈αthe␈α
abo␈α␈v␈α␈e␈αalgorithms.␈α
The
␈βπ=␈↓ ↓H␈εαsign␈αbit␈α
of␈αall␈αbut␈α
the␈αmost␈α
signi|can␈α␈t␈αw␈α␈ord␈α
of␈αa␈α
m␈α␈ultiple-precision␈αn␈α␈um␈α␈ber␈αwill
␈βπi␈↓ ↓H␈εαbe␈αzero,␈αso␈αthat␈αno␈αanomalous␈αsign␈αcorrection␈αtak␈α␈es␈αplace␈αduring␈αthe␈αcomputer's
␈βλ∀␈↓ ↓H␈εαm␈α␈ultiplication␈α
and␈α division␈α
operations.␈αIn␈α
fact,␈α
the␈α
basic␈α
meaning␈α
of␈α complemen␈α␈t
␈βλ?␈↓ ↓H␈εαnotation␈α
requires␈α
that␈α
w␈α␈e␈α∞consider␈α
all␈α
but␈α
the␈α
most␈α∞signi|can␈α␈t␈α
w␈α␈ord␈α
to␈α
be␈α
non-
␈βλj␈↓ ↓H␈εαnegativ␈α␈e:␈α∂For␈α
example,␈α∞assuming␈α∞a␈α
10-bit␈α∞w␈α␈ord,␈α∞the␈α
t␈α␈w␈α␈o's␈α∞complemen␈α␈t␈α
n␈α␈um␈α␈ber
␈β I␈↓ ∧~␈εα1101111110␈α$111111010␈α$011101011
␈β
'␈↓ ↓H␈εα(where␈αεthe␈απsign␈απis␈απgiv␈α␈en␈απonly␈απfor␈απthe␈αεmost␈απsigni|can␈α␈t␈απw␈α␈ord)␈απis␈απproperly␈απthough␈α␈t␈απof␈αεas
␈β␈↓ β∞␈ε¬2␈α↓7␈↓ ¬T␈ε¬18␈↓ λπ␈ε¬9
␈βε␈↓ αX␈ε⊗␈␈↓ α|␈εα2␈↓ β3␈εα+␈αλ(101111110␈↓ ¬
␈εα)␈↓ ¬0␈ε⊗↓␈↓ ¬B␈εα2␈↓ ¬x␈εα+␈αλ(11111010␈↓ π@␈εα)␈↓ πc␈ε⊗↓␈↓ πu␈εα2␈↓ λ≥␈εα+␈αλ(011101011␈↓ w␈εα)␈↓
∩␈εα.
␈β∪␈↓ ¬→␈ε¬2␈↓ πL␈ε¬2␈↓
β␈ε¬2
␈βg␈↓ α␈εαAddition␈α of␈α
signed␈α n␈α␈um␈α␈bers␈α
is␈α sligh␈α␈tly␈α
easier␈α when␈α
complemen␈α␈t␈α notations␈α are
␈β∩␈↓ ↓H␈εαbeing␈α used,␈αsince␈α the␈α
routine␈α
for␈α adding␈↓ ε4␈ελn␈↓ εJ␈εα-place␈α
nonnegativ␈α␈e␈α in␈α␈tegers␈α
can␈α
be␈α used
␈β=␈↓ ↓H␈εαfor␈αarbitrary␈↓ β_␈ελn␈↓ β.␈εα-place␈αin␈α␈tegers;␈αthe␈αsign␈αappears␈αonly␈αin␈αthe␈α|rst␈αw␈α␈ord,␈αso␈αthe␈αless
␈βi␈↓ ↓H␈εαsigni|can␈α␈t␈αw␈α␈ords␈αmay␈αbe␈αadded␈αtogether␈αirrespectiv␈α␈e␈αof␈αthe␈αactual␈αsign.␈α(Special
␈β
∀␈↓ ↓H␈εαatten␈α␈tion␈αm␈α␈ust␈α
be␈α
giv␈α␈en␈α
to␈α
the␈αleftmost␈α
carry␈α
when␈α
ones'␈α
complemen␈α␈t␈αnotation
␈β
?␈↓ ↓H␈εαis␈α∂being␈α⊂used,␈α⊃ho␈α␈w␈α␈ev␈α␈er;␈α∩it␈α⊂m␈α␈ust␈α⊂be␈α∂added␈α⊂in␈α␈to␈α⊂the␈α⊂least␈α⊂signi|can␈α␈t␈α⊂w␈α␈ord,␈α⊂and
␈β
j␈↓ ↓H␈εαpossibly␈α∞propagated␈α∞further␈α
to␈α∞the␈α∞left.)␈α∩Similarly,␈α∂w␈α␈e␈α∞|nd␈α∞that␈α
subtraction␈α∞of
␈β∞∃␈↓ ↓H␈εαsigned␈α n␈α␈um␈α␈bers␈α is␈α sligh␈α␈tly␈α simpler␈α with␈α complemen␈α␈t␈α notation.␈α
On␈α the␈α other␈α hand,
␈β∞A␈↓ ↓H␈εαm␈α␈ultiplication␈α∞and␈α
division␈α∞seem␈α∞to␈α∞be␈α∞done␈α∞most␈α∞easily␈α∞by␈α∞w␈α␈orking␈α∞with␈α
non-
␈β∞l␈↓ ↓H␈εαnegativ␈α␈e␈α∞quan␈α␈tities␈α∞and␈α∞doing␈α∞suitable␈α
complemen␈α␈tation␈α∞operations␈α∞beforehand
␈β∂↔␈↓ ↓H␈εαto␈α∞mak␈α␈e␈α
sure␈α∞that␈α∞both␈α∞operands␈α∞are␈α∞nonnegativ␈α␈e;␈α∂it␈α∞may␈α∞be␈α∞possible␈α∞to␈α
av␈α␈oid
␈β∂B␈↓ ↓H␈εαthis␈α
complemen␈α␈tation␈α
by␈α
devising␈α
some␈αtricks␈α
for␈α
w␈α␈orking␈α
directly␈α
with␈α
negativ␈α␈e
␈β∂m␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αin␈α
a␈α
complemen␈α␈t␈α
notation,␈α
and␈α
it␈α
is␈α
not␈αhard␈α
to␈α
see␈α
ho␈α␈w␈α
this␈α
could␈αbe
␈β⊂→␈↓ ↓H␈εαdone␈α∂in␈α⊂double-precision␈α∂m␈α␈ultiplication,␈α⊃but␈α∂care␈α⊂should␈α∂be␈α⊂tak␈α␈en␈α∂not␈α⊂to␈α∂slo␈α␈w
␈β⊂D␈↓ ↓H␈εαdo␈α␈wn␈α∞the␈α∞inner␈α∞loops␈α∞of␈α∞the␈α∞subroutines␈α∂when␈α∞high␈α∞precision␈α∞is␈α∞required.␈α∩Note
␈β⊂o␈↓ ↓H␈εαthat␈α∂the␈α⊂product␈α⊂of␈α⊂t␈α␈w␈α␈o␈↓ ∧[␈ελm␈↓ ∧z␈εα-place␈α⊂n␈α␈um␈α␈bers␈α⊂in␈α⊂t␈α␈w␈α␈o's␈α⊂complemen␈α␈t␈α⊂notation␈α∂may
␈β⊃∃␈↓ εN␈εm␈↓ π2␈ε¬2␈↓ π@␈εm
␈β⊃~␈↓ ↓H␈εαrequire␈α2␈↓ αR␈ελm␈↓ αy␈εα+␈αλ1␈αplaces:␈αthe␈αsquare␈αof␈α(␈ε⊗␈␈↓ ε?␈ελb␈↓ εh␈εα)␈αis␈↓ π$␈ελb␈↓ πZ␈εα.
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα259
␈βα(␈↓ α␈εαLet␈α∂us␈α∂no␈α␈w␈α⊂turn␈α∂to␈α∂an␈α∂analysis␈α∂of␈α∂the␈α⊂quan␈α␈tity␈↓ λ⊗␈ελK␈↓ λC␈εαthat␈α∂arises␈α∂in␈α∂Program
␈βαS␈↓ ↓H␈εαA␈↓ ↓b␈εα,␈α∂i.e.,␈α⊂the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂carries␈α∞that␈α∂occur␈α∂when␈α∂t␈α␈w␈α␈o␈↓ λε␈ελn␈↓ λ≤␈εα-place␈α∂n␈α␈um␈α␈bers␈α∂are␈α∞being
␈βα}␈↓ ↓H␈εαadded␈αtogether.␈αAlthough␈↓ ∧g␈ελK␈↓ ¬⊂␈εαhas␈αno␈αe{ect␈αon␈αthe␈αtotal␈αrunning␈αtime␈αof␈αProgram
␈ββ*␈↓ ↓H␈εαA␈↓ ↓b␈εα,␈α⊂it␈α⊂does␈α⊂a{ect␈α⊂the␈α∂running␈α⊂time␈α⊂of␈α⊂the␈α∂Program␈α⊂A's␈α⊂coun␈α␈terparts␈α⊂that␈α∂deal
␈ββU␈↓ ↓H␈εαwith␈α complemen␈α␈t␈α
notations,␈α and␈α
its␈α analysis␈α
is␈α in␈α␈teresting␈α
in␈α itself␈α
as␈α a␈α signi|can␈α␈t
␈β∧␈↓ ↓H␈εαapplication␈αof␈αgenerating␈αfunctions.
␈β∧+␈↓ α␈εαSuppose␈α
that␈↓ βi␈ελu␈↓ ∧␈εαand␈↓ ∧S␈ελv␈↓ ∧s␈εαare␈α∞independen␈α␈t␈α
random␈↓ λβ␈ελn␈↓ λ_␈εα-place␈α∞in␈α␈tegers,␈α
uniformly
␈β∧Q␈↓ ε_␈εn
␈β∧V␈↓ ↓H␈εαdistributed␈αin␈α
the␈αrange␈α
0␈ε⊗␈α∀␈↓ ¬_␈ελu␈↓ ¬-␈εα,␈↓ ¬=␈ελv␈↓ ¬[␈εα<␈↓ ε
␈ελb␈↓ ε*␈εα.␈α∞Let␈↓ π∧␈ελp␈↓ πB␈εαbe␈α
the␈αprobability␈α
that␈αexactly
␈β∧d␈↓ π∃␈εn␈↓ π'␈εk
␈β¬α␈↓ ↓H␈ελk␈↓ ↓h␈εαcarries␈α∂occur␈α∂in␈α∂the␈α∂addition␈α∂of␈↓ ¬k␈ελu␈↓ ε⊂␈εαto␈↓ ε?␈ελv␈↓ εR␈εα,␈ε∂␈α∂and␈εα␈α∂that␈α∂one␈α∂of␈α∂these␈α∂carries␈α∞occurs
␈β¬(␈↓ πx␈εn
␈β¬-␈↓ ↓H␈εαin␈α
the␈α∞most␈α∞signi|can␈α␈t␈α∞position␈α∞(so␈α
that␈↓ εM␈ελu␈↓ εl␈εα+␈↓ π→␈ελv␈↓ π9␈ε⊗∃␈↓ πj␈ελb␈↓ λ
␈εα).␈α⊃Similarly,␈α∂let␈↓
␈ελq␈↓
I␈εαbe␈α
the
␈β¬:␈↓
~␈εn␈↓
,␈εk
␈β¬X␈↓ ↓H␈εαprobability␈α
that␈α
exactly␈↓ ∧Q␈ελk␈↓ ∧p␈εαcarries␈α
occur,␈α∞but␈α
that␈α
there␈α
is␈α∞no␈α
carry␈α
in␈α
the␈α
most
␈βεβ␈↓ ↓H␈εαsigni|can␈α␈t␈αposition.␈αThen␈αit␈αis␈αnot␈αhard␈αto␈αsee␈αthat
␈βεP␈↓ ∧∂␈ελp␈↓ ∧G␈εα=␈α
0,␈↓ ¬Y␈ελq␈↓ ε
␈εα=␈↓ ε;␈ελ∞␈↓ εe␈εα,␈↓ π=␈εαfor␈αall␈↓ λ'␈ελk␈↓ λ9␈εα;
␈βε]␈↓ ∧ ␈ε¬0␈↓ ∧/␈εk␈↓ ¬f␈ε¬0␈↓ ¬u␈εk␈↓ εH␈ε¬0␈↓ εW␈εk
␈βπ~␈↓ ¬q␈ελb␈↓ ελ␈εα+␈αλ1␈↓ π3␈ελb␈↓ πI␈ε⊗␈␈εα␈αλ1
␈βπ1␈↓ ∧π␈ελp␈↓ ¬?␈εα=␈↓ εJ␈ελp␈↓ πβ␈εα+␈↓ λ␈ελq␈↓ λ9␈εα,␈↓ α␈εα(3)
␈βπ>␈↓ ε[␈εn␈↓ εm␈εk␈↓ λ_␈εn␈↓ λ*␈εk
␈βπ?␈↓ ∧_␈ε¬(␈↓ ∧"␈εn␈↓ ∧4␈ε¬+␈α␈1␈α↓)␈α␈(␈↓ ∧r␈εk␈↓ ¬↓␈ε¬+␈α␈1␈α↓)
␈βπA␈↓ ¬q␈∧πA¬qαU␈↓ π3␈∧πAπ3αU
␈βπI␈↓ ε␈εα2␈↓ ε≥␈ελb␈↓ πM␈εα2␈↓ π←␈ελb
␈βπ{␈↓ ¬q␈ελb␈↓ ελ␈ε⊗␈␈εα␈αλ1␈↓ π3␈ελb␈↓ πI␈εα+␈αλ1
␈βλ∩␈↓ ∧I␈ελq␈↓ ¬?␈εα=␈↓ εJ␈ελp␈↓ πβ␈εα+␈↓ λ␈ελq␈↓ λ9␈εα;
␈βλ ␈↓ ∧V␈ε¬(␈↓ ∧`␈εn␈↓ ∧r␈ε¬+1)␈↓ ¬'␈εk␈↓ ε[␈εn␈↓ εm␈εk␈↓ λ_␈εn␈↓ λ*␈εk
␈βλ"␈↓ ¬q␈∧λ"¬qαU␈↓ π3␈∧λ"π3αU
␈βλ+␈↓ ε␈εα2␈↓ ε≥␈ελb␈↓ πM␈εα2␈↓ π←␈ελb
␈βλr␈↓ ↓H␈εαthis␈α happens␈α because␈α (␈↓ ∧!␈ελb␈↓ ∧4␈ε⊗␈␈εα␈α∧1)/2␈↓ ¬≡␈ελb␈↓ ¬6␈εαis␈α the␈α probability␈α that␈↓ λ∃␈ελu␈↓ λ<␈εα+␈↓ λd␈ελv␈↓ ␈ε⊗∃␈↓ :␈ελb␈↓ R␈εαand␈α (␈↓
!␈ελb␈↓
4␈εα+␈α∧1)/2␈↓ ≡␈ελb
␈β ␈↓ λ)␈ε¬1␈↓ λt␈ε¬1
␈β ≥␈↓ ↓H␈εαis␈αthe␈αprobability␈α
that␈↓ ∧3␈ελu␈↓ ∧←␈εα+␈↓ ¬␈ελv␈↓ ¬1␈εα+␈α 1␈ε⊗␈α
∃␈↓ ε)␈ελb␈↓ ε7␈εα,␈α
when␈↓ π,␈ελu␈↓ π\␈εαand␈↓ λ"␈ελv␈↓ λM␈εαare␈αindependen␈α␈tly␈αand
␈β +␈↓ ∧H␈ε¬1␈↓ ¬≠␈ε¬1␈↓ πA␈ε¬1␈↓ λ2␈ε¬1
␈β I␈↓ ↓H␈εαuniformly␈αdistributed␈αin␈α␈tegers␈αin␈αthe␈αrange␈α0␈ε⊗␈α
∀␈↓ π?␈ελu␈↓ πb␈εα,␈↓ πr␈ελv␈↓ λ~␈εα<␈↓ λH␈ελb␈↓ λV␈εα.
␈β V␈↓ πS␈ε¬1␈↓ λ↓␈ε¬1
␈β t␈↓ α␈εαTo␈α∞obtain␈α∞further␈α
information␈α∞about␈α∞these␈α
quan␈α␈tities␈↓ λe␈ελp␈↓ $␈εαand␈↓ l␈ελq␈↓
~␈εα,␈α∞w␈α␈e␈α
may
␈β
↓␈↓ λv␈εn␈↓ λ␈εk␈↓ y␈εn␈↓
␈εk
␈β
∨␈↓ ↓H␈εαset␈αup␈αthe␈αgenerating␈αfunctions
␈β
P␈↓ ∧]␈ε↓X␈↓ πy␈ε↓X
␈β
m␈↓ ¬]␈εk␈↓ ¬y␈εn␈↓ λu␈εk␈↓ ⊃␈εn
␈β
s␈↓ βG␈ελP␈↓ βa␈εα(␈↓ βm␈ελz␈↓ β|␈εα,␈↓ ∧␈ελt␈↓ ∧→␈εα)␈α
=␈↓ ¬↔␈ελp␈↓ ¬N␈ελz␈↓ ¬l␈ελt␈↓ ε␈εα,␈↓ εc␈ελQ␈↓ ε⎇␈εα(␈↓ π ␈ελz␈↓ π_␈εα,␈↓ π(␈ελt␈↓ π5␈εα)␈α
=␈↓ λ3␈ελq␈↓ λf␈ελz␈↓ ∧␈ελt␈↓ #␈εα.␈↓ α␈εα(4)
␈β↓␈↓ ¬(␈εn␈↓ ¬:␈εk␈↓ λ@␈εn␈↓ λR␈εk
␈β%␈↓ ∧c␈εk␈↓ ∧q␈ε¬,␈↓ ∧y␈εn␈↓ π␈␈εk␈↓ λ
␈ε¬,␈↓ λ∃␈εn
␈β␈␈↓ ↓H␈εαFrom␈α(3)␈αw␈α␈e␈αhav␈α␈e␈αthe␈αbasic␈αrelations
␈βN␈↓ ¬λ␈ε↓∩␈↓ λG␈ε↓∪
␈βR␈↓ ¬"␈ελb␈↓ ¬9␈εα+␈αλ1␈↓ π⊂␈ελb␈↓ π'␈ε⊗␈␈εα␈αλ1
␈βh␈↓ βQ␈ελP␈↓ βj␈εα(␈↓ βv␈ελz␈↓ ∧¬␈εα,␈↓ ∧∃␈ελt␈↓ ∧"␈εα)␈↓ ∧8␈εα=␈↓ ∧f␈ελz␈↓ ∧u␈ελt␈↓ ¬{␈ελP␈↓ ε∀␈εα(␈↓ ε ␈ελz␈↓ ε/␈εα,␈↓ ε?␈ελt␈↓ εL␈εα)␈αλ+␈↓ πi␈ελQ␈↓ λβ␈εα(␈↓ λ∂␈ελz␈↓ λ≡␈εα,␈↓ λ.␈ελt␈↓ λ;␈εα)␈↓ λc␈εα,
␈βy␈↓ ¬"␈∧y¬"αU␈↓ π⊂␈∧yπ⊂αU
␈β
↓␈↓ ¬<␈εα2␈↓ ¬N␈ελb␈↓ π*␈εα2␈↓ π<␈ελb
␈β
7␈↓ ¬?␈ε↓∩␈↓ λ}␈ε↓∪
␈β
:␈↓ ¬Y␈ελb␈↓ ¬p␈ε⊗␈␈εα␈αλ1␈↓ πG␈ελb␈↓ π↑␈εα+␈αλ1
␈β
Q␈↓ βP␈ελQ␈↓ βj␈εα(␈↓ βv␈ελz␈↓ ∧¬␈εα,␈↓ ∧∃␈ελt␈↓ ∧"␈εα)␈↓ ∧8␈εα=␈α
1␈αλ+␈↓ ¬,␈ελt␈↓ ε2␈ελP␈↓ εK␈εα(␈↓ εW␈ελz␈↓ εf␈εα,␈↓ εv␈ελt␈↓ πβ␈εα)␈αλ+␈↓ λ ␈ελQ␈↓ λ:␈εα(␈↓ λF␈ελz␈↓ λU␈εα,␈↓ λe␈ελt␈↓ λr␈εα)␈↓ ~␈εα.
␈β
a␈↓ ¬Y␈∧
a¬YαU␈↓ πG␈∧
aπGαU
␈β
i␈↓ ¬s␈εα2␈↓ ε¬␈ελb␈↓ πa␈εα2␈↓ πs␈ελb
␈β∞;␈↓ ↓H␈εαThese␈αt␈α␈w␈α␈o␈αequations␈αare␈αreadily␈αsolv␈α␈ed␈αfor␈↓ εm␈ελP␈↓ πε␈εα(␈↓ π∩␈ελz␈↓ π!␈εα,␈↓ π1␈ελt␈↓ π>␈εα)␈αand␈↓ λ≤␈ελQ␈↓ λ6␈εα(␈↓ λB␈ελz␈↓ λQ␈εα,␈↓ λa␈ελt␈↓ λo␈εα);␈αand␈αif␈αw␈α␈e␈αlet
␈β∞o␈↓ π@␈ε↓X
␈β∂␈↓ λX␈εn
␈β∂∩␈↓ ∧↓␈ελG␈↓ ∧≤␈εα(␈↓ ∧(␈ελz␈↓ ∧7␈εα,␈↓ ∧G␈ελt␈↓ ∧T␈εα)␈α
=␈↓ ¬_␈ελP␈↓ ¬1␈εα(␈↓ ¬=␈ελz␈↓ ¬L␈εα,␈↓ ¬\␈ελt␈↓ ¬j␈εα)␈αλ+␈↓ ε*␈ελQ␈↓ εD␈εα(␈↓ εP␈ελz␈↓ ε←␈εα,␈↓ εo␈ελt␈↓ ε|␈εα)␈α
=␈↓ πz␈ελG␈↓ λ$␈εα(␈↓ λ0␈ελz␈↓ λ?␈εα)␈↓ λK␈ελt␈↓ λj␈εα,
␈β∂ ␈↓ λ∩␈εn
␈β∂D␈↓ πQ␈εn
␈β⊂→␈↓ ↓H␈εαwhere␈↓ α1␈ελG␈↓ α[␈εα(␈↓ αg␈ελz␈↓ αv␈εα)␈α∞is␈α∞the␈α
generating␈α∞function␈α∞for␈α∞the␈α
total␈α∞n␈α␈um␈α␈ber␈α∞of␈α
carries␈α∞when␈↓ ␈ελn␈↓ ␈εα-
␈β⊂&␈↓ αI␈εn
␈β⊂D␈↓ ↓H␈εαplace␈αn␈α␈um␈α␈bers␈αare␈αadded,␈αw␈α␈e␈α|nd␈αthat
␈β⊃∪␈↓
≠␈ε¬2
␈β⊃∃␈↓ πR␈ε¬1
␈β⊃_␈↓ ↓H␈ελG␈↓ ↓c␈εα(␈↓ ↓o␈ελz␈↓ ↓}␈εα,␈↓ α∞␈ελt␈↓ α≠␈εα)␈α
=␈α
(␈↓ αk␈ελb␈↓ β↓␈ε⊗␈␈↓ β-␈ελz␈↓ β<␈ελt␈↓ βI␈εα)/␈↓ βg␈ελp␈↓ βz␈εα(␈↓ ∧ε␈ελz␈↓ ∧∃␈εα,␈↓ ∧%␈ελt␈↓ ∧2␈εα),␈↓ ¬⊗␈εαwhere␈↓ ¬}␈ελp␈↓ ε⊂␈εα(␈↓ ε≤␈ελz␈↓ ε+␈εα,␈↓ ε;␈ελt␈↓ εH␈εα)␈α
=␈↓ π␈ελb␈↓ π"␈ε⊗␈␈↓ πe␈εα(1␈αλ+␈↓ λ7␈ελb␈↓ λE␈εα)(1␈αλ+␈↓ #␈ελz␈↓ 2␈εα)␈↓ >␈ελt␈↓ S␈εα+␈↓ ␈␈ελz␈↓
∞␈ελt␈↓
*␈εα.␈↓ α␈εα(5)
␈β⊃)␈↓ πR␈∧⊃)πRα∂
␈β⊃+␈↓ πR␈ε¬2
␈β∪(
␈β↓Y␈↓ ↓H␈εα260␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα&␈↓ ↓H␈εαNote␈α∂that␈↓ αs␈ελG␈↓ β∂␈εα(1,␈↓ β=␈ελt␈↓ βJ␈εα)␈α∂=␈α∂1/(1␈ε⊗␈α ␈␈↓ ¬⊃␈ελt␈↓ ¬≡␈εα),␈α⊂and␈α∂this␈α∂checks␈α∂with␈α∂the␈α∂fact␈α∂that␈↓ ⎇␈ελG␈↓
'␈εα(1)␈α∞m␈α␈ust
␈βα4␈↓
∃␈εn
␈βαQ␈↓ ↓H␈εαequal␈α
1␈α
(it␈αis␈α
the␈α
sum␈αof␈α
all␈αthe␈α
possible␈α
probabilities).␈αTaking␈α
partial␈α
derivativ␈α␈es
␈βα⎇␈↓ ↓H␈εαof␈α(5)␈αwith␈αrespect␈αto␈↓ ∧ ␈ελz␈↓ ∧/␈εα,␈αw␈α␈e␈α|nd␈αthat
␈ββD␈↓ β7␈ε↓X
␈ββP␈↓ αP␈ελ%␈↓ α`␈ελG␈↓ ¬.␈ε⊗␈␈↓ ¬R␈ελt␈↓ ε-␈ελt␈↓ ε:␈εα(␈↓ εF␈ελb␈↓ ε]␈ε⊗␈␈↓ π ␈ελz␈↓ π_␈ελt␈↓ π%␈εα)(␈↓ π=␈ελb␈↓ πS␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓ λW␈ελt␈↓ λd␈εα)
␈ββa␈↓ ∧␈ε→0␈↓ ∧M␈εn
␈ββg␈↓ β ␈εα=␈↓ βq␈ελG␈↓ ∧→␈εα(␈↓ ∧%␈ελz␈↓ ∧4␈εα)␈↓ ∧@␈ελt␈↓ ∧i␈εα=␈↓ ¬⎇␈εα+␈↓ λt␈εα;
␈ββw␈↓ αP␈∧βwαPα,␈↓ ¬≠␈∧βw¬≠αW␈↓ ε-␈∧βwε-ααC
␈ββy␈↓ ∧π␈εn
␈ββ⎇␈↓ π|␈ε¬2
␈ββ␈␈↓ αV␈ελ%␈↓ αf␈ελz␈↓ ¬≠␈ελp␈↓ ¬-␈εα(␈↓ ¬9␈ελz␈↓ ¬H␈εα,␈↓ ¬X␈ελt␈↓ ¬e␈εα)␈↓ π∪␈εα2␈↓ π%␈ελp␈↓ π8␈εα(␈↓ πD␈ελz␈↓ πS␈εα,␈↓ πc␈ελt␈↓ πp␈εα)
␈β∧_␈↓ βH␈εn
␈β∧=␈↓ β7␈ε↓X
␈β∧C␈↓ ¬N␈ε¬2␈↓ πe␈ε¬2
␈β∧D␈↓ αR␈ε¬2
␈β∧H␈↓ ¬≥␈ε⊗␈␈↓ ¬A␈ελt␈↓ ¬\␈εα(␈↓ ¬h␈ελb␈↓ ¬␈␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓ πβ␈ελt␈↓ π⊂␈εα)␈↓ πX␈ελt␈↓ πs␈εα(␈↓ π␈␈ελb␈↓ λ∃␈ε⊗␈␈↓ λA␈ελz␈↓ λP␈ελt␈↓ λ]␈εα)(␈↓ λu␈ελb␈↓ ␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓
⊂␈ελt␈↓
≥␈εα)
␈β∧I␈↓ αA␈ελ%␈↓ α`␈ελG
␈β∧Z␈↓ ∧␈ε→0␈α↓0␈↓ ∧O␈εn
␈β∧`␈↓ β ␈εα=␈↓ βq␈ελG␈↓ ∧≠␈εα(␈↓ ∧'␈ελz␈↓ ∧6␈εα)␈↓ ∧B␈ελt␈↓ ∧k␈εα=␈↓ π(␈εα+␈↓
-␈εα.
␈β∧p␈↓ αA␈∧∧pαAα:␈↓ ¬≥␈∧∧p¬≥α↓␈␈↓ πX␈∧∧pπXααR
␈β∧r␈↓ ∧π␈εn
␈β∧v␈↓ αg␈ε¬2␈↓ ε@␈ε¬2␈↓ $␈ε¬3
␈β∧x␈↓ αG␈ελ%␈↓ αX␈ελz␈↓ ¬j␈ελp␈↓ ¬|␈εα(␈↓ ελ␈ελz␈↓ ε↔␈εα,␈↓ ε'␈ελt␈↓ ε4␈εα)␈↓ λN␈ελp␈↓ λ`␈εα(␈↓ λl␈ελz␈↓ λ{␈εα,␈↓ ␈ελt␈↓ _␈εα)
␈β¬⊃␈↓ βH␈εn
␈β¬g␈↓ ↓H␈εαNo␈α␈w␈αlet␈αus␈αput␈↓ β?␈ελz␈↓ βX␈εα=␈α
1␈αand␈αexpand␈αin␈αpartial␈αfractions:
␈βε.␈↓ ↓u␈ε↓X
␈βε7␈↓ βq␈ε↓∩␈↓ ,␈ε↓∪
␈βε:␈↓ β↑␈ελt␈↓ ∧?␈εα1␈↓ ε$␈εα1␈↓ λ5␈εα1
␈βεK␈↓ αJ␈ε→0␈↓ β
␈εn
␈βεQ␈↓ α/␈ελG␈↓ αV␈εα(1)␈↓ β␈ελt␈↓ β)␈εα=␈↓ ¬⊃␈ε⊗␈␈↓ π$␈εα+␈↓ H␈εα,
␈βεa␈↓ β[␈∧εaβ[α∩␈↓ ∧␈∧εa∧αz␈↓ ¬A␈∧εa¬Aα↓X␈↓ πT␈∧εaπTα↓T
␈βεc␈↓ αE␈εn
␈βεg␈↓ ∧v␈ε¬2
␈βεi␈↓ β[␈εα2␈↓ ∧␈εα(1␈ε⊗␈αλ␈␈↓ ∧]␈ελt␈↓ ∧j␈εα)␈↓ ¬A␈εα(␈↓ ¬M␈ελb␈↓ ¬c␈ε⊗␈␈εα␈αλ1)(1␈ε⊗␈αλ␈␈↓ ε␈␈ελt␈↓ π␈εα)␈↓ πT␈εα(␈↓ π`␈ελb␈↓ πw␈ε⊗␈␈εα␈αλ1)(␈↓ λM␈ελb␈↓ λc␈ε⊗␈␈↓ ∂␈ελt␈↓ ≤␈εα)
␈βπα␈↓ αε␈εn
␈βπ&␈↓ ↓s␈ε↓X
␈βπ-␈↓ βh␈ε¬2
␈βπ/␈↓ β{␈ε↓∩
␈βπ2␈↓ β[␈ελt␈↓ ∧I␈εα1␈↓ ε4␈εα1␈↓ λT␈εα1
␈βπC␈↓ αH␈ε→00␈↓ β
␈εn
␈βπI␈↓ α-␈ελG␈↓ αV␈εα(1)␈↓ β␈ελt␈↓ β)␈εα=␈↓ ¬~␈ε⊗␈␈↓ π<␈εα+
␈βπY␈↓ β[␈∧πYβ[α≤␈↓ ∧∃␈∧πY∧∃αz␈↓ ¬J␈∧πY¬Jα↓f␈↓ πl␈∧πYπlα↓c
␈βπ[␈↓ αC␈εn
␈βπ←␈↓ ¬␈ε¬3␈↓ ε7␈ε¬2␈↓ λX␈ε¬2
␈βπa␈↓ β`␈εα2␈↓ ∧∃␈εα(1␈ε⊗␈αλ␈␈↓ ∧g␈ελt␈↓ ∧t␈εα)␈↓ ¬J␈εα(␈↓ ¬V␈ελb␈↓ ¬m␈ε⊗␈␈εα␈αλ1␈↓ ε+␈εα)␈↓ εE␈εα(1␈ε⊗␈αλ␈␈↓ π↔␈ελt␈↓ π$␈εα)␈↓ πl␈εα(␈↓ πx␈ελb␈↓ λ∞␈ε⊗␈␈εα␈αλ1␈↓ λL␈εα)␈↓ λg␈εα(␈↓ λs␈ελb␈↓ ␈ε⊗␈␈↓ 5␈ελt␈↓ B␈εα)
␈βπz␈↓ α∧␈εn
␈βλ≡␈↓
[␈ε↓∪
␈βλ"␈↓ ]␈εα1
␈βλ8␈↓ λE␈εα+␈↓
w␈εα.
␈βλI␈↓ λu␈∧λIλuα↓c
␈βλN␈↓
I␈ε¬2
␈βλQ␈↓ λu␈εα(␈↓ ↓␈ελb␈↓ _␈ε⊗␈␈εα␈αλ1)(␈↓ n␈ελb␈↓
∧␈ε⊗␈␈↓
0␈ελt␈↓
=␈εα)
␈β #␈↓ ↓H␈εαIt␈αfollo␈α␈ws␈αthat␈αthe␈αav␈α␈erage␈αn␈α␈um␈α␈ber␈αof␈αcarries,␈αi.e.,␈αthe␈αmean␈αvalue␈αof␈↓
λ␈ελK␈↓
&␈εα,␈αis
␈β r␈↓ ¬2␈ε↓ ␈↓ λ?␈ε↓!
␈β u␈↓ λ⊃␈εn
␈β ⎇␈↓ εo␈ε↓∩␈↓ πK␈ε↓∩␈↓ π{␈ε↓∪␈↓ λ)␈ε↓∪
␈β
↓␈↓ ¬≤␈εα1␈↓ ε8␈εα1␈↓ πe␈εα1
␈β
⊃␈↓ ∧)␈ε→0
␈β
↔␈↓ ∧∞␈ελG␈↓ ∧6␈εα(1)␈α
=␈↓ ¬I␈ελn␈↓ ¬g␈ε⊗␈␈↓ π¬␈εα1␈ε⊗␈αλ␈␈↓ λ\␈εα;␈↓ α␈εα(6)
␈β
(␈↓ ¬≤␈∧
(¬≤α∩␈↓ ε↔␈∧
(ε↔αU␈↓ πe␈∧
(πeα∩
␈β
)␈↓ ∧$␈εn
␈β
0␈↓ ¬≤␈εα2␈↓ ε↔␈ελb␈↓ ε-␈ε⊗␈␈εα␈αλ1␈↓ πg␈ελb
␈β␈↓ ↓H␈εαthe␈αvariance␈αis
␈βU␈↓ ↓c␈ε→00␈↓ αk␈ε→0␈↓ βp␈ε→0␈↓ ∧'␈ε¬2
␈β[␈↓ ↓H␈ελG␈↓ ↓q␈εα(1)␈αλ+␈↓ αO␈ελG␈↓ αw␈εα(1)␈ε⊗␈αλ␈␈↓ βU␈ελG␈↓ β⎇␈εα(1␈↓ ∧≠␈εα)
␈βm␈↓ ↓]␈εn␈↓ αe␈εn␈↓ βk␈εn
␈β
␈↓ αf␈ε↓ ␈↓
¬␈ε↓!
␈β∂␈↓ πV␈εn␈↓ e␈ε¬2␈↓ s␈εn
␈β_␈↓ π⊂␈ε↓∩␈↓ π@␈ε↓∪␈↓ ∨␈ε↓∩␈↓ O␈ε↓∪
␈β≠␈↓ αP␈εα1␈↓ βa␈εα2␈↓ βs␈ελn␈↓ ∧e␈εα2␈↓ ∧w␈ελb␈↓ ¬
␈εα+␈αλ1␈↓ ε≤␈εα2␈↓ ε.␈ελb␈↓ εD␈εα+␈αλ2␈↓ π*␈εα1␈↓ λU␈εα1␈↓ 9␈εα1
␈β2␈↓ α≡␈εα=␈↓ α⎇␈ελn␈↓ β~␈εα+␈↓ ∧+␈ε⊗␈␈↓ ¬b␈εα+␈↓ πp␈ε⊗␈␈↓
"␈εα.␈↓ α(7)
␈βB␈↓ αP␈∧BαPα∩␈↓ βJ␈∧BβJαU␈↓ ∧[␈∧B∧[α{␈↓ ε∩␈∧Bε∩α{␈↓ π*␈∧Bπ*α∩␈↓ λ ␈∧Bλ α{␈↓ 9␈∧B 9α∩
␈βH␈↓ ¬G␈ε¬2␈↓ ε}␈ε¬2␈↓
␈ε¬2
␈βK␈↓ αP␈εα4␈↓ βJ␈ελb␈↓ βa␈ε⊗␈␈εα␈αλ1␈↓ ∧[␈εα(␈↓ ∧g␈ελb␈↓ ∧⎇␈ε⊗␈␈εα␈αλ1␈↓ ¬;␈εα)␈↓ ε∩␈εα(␈↓ ε≡␈ελb␈↓ ε4␈ε⊗␈␈εα␈αλ1␈↓ εr␈εα)␈↓ π,␈ελb␈↓ λ ␈εα(␈↓ λ,␈ελb␈↓ λC␈ε⊗␈␈εα␈αλ1␈↓ ↓␈εα)␈↓ ;␈ελb
␈β
(␈↓ π[␈ε¬1
␈β
+␈↓ ↓H␈εαSo␈αthe␈αn␈α␈um␈α␈ber␈αof␈αcarries␈αis␈αjust␈αsligh␈α␈tly␈αless␈αthan␈↓ πm␈ελn␈↓ λ∂␈εαunder␈αthese␈αassumptions.
␈β
;␈↓ π[␈∧
;π[α∂
␈β
>␈↓ π[␈ε¬2
␈β
l␈↓ ↓H␈ε∩History␈α and␈α Bibliograph␈α␈y.␈εα␈α∩The␈α early␈α history␈α of␈α the␈α classical␈α algorithms␈α described
␈β∞↔␈↓ ↓H␈εαin␈α this␈α
section␈α
is␈α
left␈α
as␈α
an␈α in␈α␈teresting␈α
project␈α
for␈α
the␈α
reader,␈α
and␈α
only␈α
the␈α history
␈β∞B␈↓ ↓H␈εαof␈αtheir␈αimplemen␈α␈tation␈αon␈αcomputers␈αwill␈αbe␈αtraced␈αhere.
␈β∞i␈↓ βg␈εn
␈β∞n␈↓ α␈εαThe␈α∞use␈α
of␈α∞1␈↓ βU␈εα0␈↓ ∧π␈εαas␈α
an␈α∞assumed␈α∞radix␈α
when␈α∞m␈α␈ultiplying␈α
large␈α∞n␈α␈um␈α␈bers␈α∞on␈α
a
␈β∂→␈↓ ↓H␈εαdesk␈α
calculator␈α∞was␈α∞discussed␈α
by␈α∞D.␈α∞N.␈α
Lehmer␈α∞and␈α
J.␈α∞P.␈α∞Ballan␈α␈tine,␈ε∂␈α∞AMM␈ε∩␈α
30
␈β∂D␈↓ ↓H␈εα(1923),␈α67↑69.
␈β∂o␈↓ α␈εαDouble-precision␈α
arithmetic␈αon␈α
digital␈α
computers␈αwas␈α
|rst␈α
treated␈αby␈α
J.␈α
v␈α␈on
␈β⊂~␈↓ ↓H␈εαNeumann␈αand␈α
H.␈α
H.␈αGoldstine␈α
[J.␈α
v␈α␈on␈αNeumann,␈ε∂␈α
Collected␈α
Works␈ε∩␈α
5␈εα,␈α142↑151].
␈β⊂F␈↓ ↓H␈εαTheorems␈α⊂A␈α⊂and␈α⊂B␈α⊃abo␈α␈v␈α␈e␈α⊂are␈α⊂due␈α⊂to␈α⊃D.␈α⊂A.␈α⊂Pope␈α⊂and␈α⊂M.␈α⊃L.␈α⊂Stein␈α⊂[␈ε∂CA␈α␈CM␈ε∩␈α⊂3
␈β⊂q␈↓ ↓H␈εα(1960),␈α⊂652↑654],␈α⊂whose␈α⊂paper␈α∂also␈α⊂con␈α␈tains␈α∂a␈α⊂bibliograph␈α␈y␈α∂of␈α⊂earlier␈α∂w␈α␈ork␈α∂on
␈β⊃≤␈↓ ↓H␈εαdouble-precision␈αroutines.␈αOther␈αways␈αof␈αchoosing␈αthe␈αtrial␈αquotien␈α␈t␈↓ t␈εα∂␈↓ u␈ελq␈↓
⊂␈εαhav␈α␈e␈αbeen
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα261
␈βα&␈↓ ↓H␈εαdiscussed␈α⊃by␈α⊃A.␈α∩G.␈α⊃Co␈α␈x␈α⊃and␈α⊃H.␈α∩A.␈α⊃Luther,␈ε∂␈α∪CA␈α␈CM␈ε∩␈α⊃4␈εα␈α⊃(1961),␈α∪353␈α⊃[divide␈α⊃by
␈βαQ␈↓ ↓H␈ελv␈↓ ↓o␈εα+␈αλ1␈α∞instead␈α
of␈↓ βc␈ελv␈↓ ∧↓␈εα],␈α∞and␈α
by␈α
M.␈α
L.␈α∞Stein,␈ε∂␈α
CA␈α␈CM␈ε∩␈α
7␈εα␈α∞(1964),␈α
472↑474␈α
[divide␈α
by
␈βα←␈↓ ↓W␈ε¬1␈↓ βs␈ε¬1
␈βα⎇␈↓ ↓H␈ελv␈↓ ↓q␈εαor␈↓ α≠␈ελv␈↓ α@␈εα+␈αε1␈αaccording␈α
to␈αthe␈αmagnitude␈α
of␈↓ εh␈ελv␈↓ πε␈εα];␈αKrishnam␈α␈urth␈α␈y␈α[␈ε∂CA␈α␈CM␈ε∩␈α8␈εα␈α
(1965),
␈ββ
␈↓ ↓W␈ε¬1␈↓ α+␈ε¬1␈↓ εx␈ε¬2
␈ββ(␈↓ ↓H␈εα179↑181]␈α
sho␈α␈w␈α␈ed␈α
that␈α
examination␈αof␈α
the␈α
single-precision␈αremainder␈α
in␈α
the␈α
latter
␈ββS␈↓ ↓H␈εαmethod␈αleads␈αto␈α
an␈αimpro␈α␈v␈α␈emen␈α␈t␈α
o␈α␈v␈α␈er␈αTheorem␈α
B.␈α~Krishnam␈α␈urth␈α␈y␈αand␈αNandi,
␈ββ}␈↓ ↓H␈ε∂CA␈α␈CM␈ε∩␈α∞10␈εα␈α∂(1967),␈α⊂809↑813,␈α∂suggested␈α∂a␈α∂way␈α∞to␈α∂replace␈α∂the␈α∂normalization␈α∞and
␈β∧)␈↓ ↓H␈εαunnormalization␈α operations␈α of␈α Algorithm␈α D␈α by␈α a␈α
calculation␈α of␈↓ ↔␈εα∂␈↓ _␈ελq␈↓ 1␈εαbased␈α on␈α sev␈α␈eral
␈β∧U␈↓ ↓H␈εαleading␈αdigits␈αof␈αthe␈αoperands.␈αG.␈αE.␈αCollins␈αand␈αD.␈αR.␈αMusser␈αhav␈α␈e␈αcarried␈αout
␈β¬␈↓ ↓H␈εαan␈αλin␈α␈teresting␈α analysis␈α of␈α the␈α original␈α Pope␈αλand␈α Stein␈α algorithm␈α [␈ε∂Inf.␈α Proc.␈αλLetters
␈β¬+␈↓ ↓H␈ε∩6␈εα␈α(1977),␈α151↑155].
␈β¬X␈↓ α␈εαSev␈α␈eral␈αalternativ␈α␈e␈αmethods␈αfor␈αdivision␈αhav␈α␈e␈αalso␈αbeen␈αsuggested:
␈βε∀␈↓ ↓b␈εα1)␈↓ α␈εα\Fourier␈α⊃division"␈α⊃[J.␈α⊃Fourier,␈ε∂␈α∪Analyse␈α⊃des␈↓ πW␈ε∂∞␈↓ πX␈ε∂e␈↓ πh␈ε∂quations␈α⊃d␈↓ ⊂␈ε∂∞␈↓ ⊃␈ε∂e␈↓ !␈ε∂termin␈↓
λ␈ε∂∞␈↓
␈ε∂e␈↓
→␈ε∂es␈εα␈α⊃(Paris,
␈βε@␈↓ ↓H␈εα1831),␈ε⊗␈α
x␈εα2.21].␈α∩This␈α
method,␈α
which␈α was␈α often␈α
used␈α on␈α desk␈α
calculators,␈α essen␈α␈tially
␈βεk␈↓ ↓H␈εαobtains␈α each␈α
new␈α
quotien␈α␈t␈α
digit␈α
by␈α
increasing␈α the␈α
precision␈α
of␈α
the␈α
divisor␈α
and␈α the
␈βπ⊗␈↓ ↓H␈εαdividend␈αat␈αeach␈αstep.␈αSome␈αrather␈αextensiv␈α␈e␈αtests␈αby␈αthe␈αauthor␈αhav␈α␈e␈αindicated
␈βπA␈↓ ↓H␈εαthat␈αsuch␈αa␈αmethod␈αis␈α
inferior␈αto␈αthe␈α\divide␈α
and␈αcorrect"␈αtechnique␈αabo␈α␈v␈α␈e,␈αbut
␈βπl␈↓ ↓H␈εαthere␈αmay␈αbe␈αsome␈αapplications␈αin␈αwhich␈αFourier␈αdivision␈αis␈αpractical.␈αSee␈αD.␈αH.
␈βλ_␈↓ ↓H␈εαLehmer,␈ε∂␈α
AMM␈ε∩␈α∞33␈εα␈α
(1926),␈α∞198↑206;␈α∞J.␈α
V.␈α∞Uspensky,␈ε∂␈α
Theory␈α∞of␈α
Equations␈εα␈α
(New
␈βλC␈↓ ↓H␈εαYork:␈αMcGraw-Hill,␈α1948),␈α159↑164.
␈βλ␈␈↓ ↓b␈εα2)␈↓ α␈εα\Newton's␈αλmethod"␈απfor␈αλevaluating␈απthe␈αλreciprocal␈απof␈αλa␈απn␈α␈um␈α␈ber␈αλwas␈απextensiv␈α␈ely
␈β *␈↓ ↓H␈εαused␈αin␈αearly␈αcomputers␈αwhen␈αthere␈αwas␈αno␈αsingle-precision␈αdivision␈αinstruction.
␈β V␈↓ ↓H␈εαThe␈αidea␈αis␈αto␈α|nd␈αsome␈αinitial␈αappro␈α␈ximation␈↓ π%␈ελx␈↓ πP␈εαto␈αthe␈αn␈α␈um␈α␈ber␈α1/␈↓ ←␈ελv␈↓ r␈εα,␈αthen␈αto␈αlet
␈β c␈↓ π6␈ε¬0
␈β |␈↓ βZ␈ε¬2
␈β
↓␈↓ ↓H␈ελx␈↓ α∨␈εα=␈α
2␈↓ α←␈ελx␈↓ β ␈ε⊗␈␈↓ β5␈ελv␈↓ βH␈ελx␈↓ βl␈εα.␈αThis␈αmethod␈αcon␈α␈v␈α␈erges␈αrapidly␈αto␈α1/␈↓ λB␈ελv␈↓ λU␈εα,␈αsince␈↓ B␈ελx␈↓ o␈εα=␈α
(1␈ε⊗␈απ␈␈↓
n␈ελ∂␈↓
|␈εα)/␈↓ ~␈ελv
␈β
∞␈↓ ↓X␈εn␈↓ ↓j␈ε¬+1␈↓ αp␈εn␈↓ S␈εn
␈β
∪␈↓ βZ␈εn
␈β
'␈↓ ∧n␈ε¬2
␈β
,␈↓ ↓H␈εαimplies␈α
that␈↓ β
␈ελx␈↓ βd␈εα=␈α
(1␈ε⊗␈αε␈␈↓ ∧`␈ελ∂␈↓ ∧|␈εα)/␈↓ ¬~␈ελv␈↓ ¬-␈εα.␈αCon␈α␈v␈α␈ergence␈α
to␈αthird␈α
order,␈αi.e.,␈αwith␈↓
∩␈ελ∂␈↓
*␈εαreplaced
␈β
9␈↓ β≥␈εn␈↓ β/␈ε¬+1
␈β
R␈↓ α0␈ε¬3
␈β
W␈↓ ↓H␈εαby␈↓ ↓|␈ελO␈↓ α⊗␈εα(␈↓ α"␈ελ∂␈↓ α>␈εα)␈αat␈αeach␈αstep,␈αcan␈αbe␈αobtained␈αusing␈αthe␈αform␈α␈ula
␈β-␈↓ λf␈ε¬2
␈β4␈↓ βk␈ελx␈↓ ∧B␈εα=␈↓ ∧p␈ελx␈↓ ¬≠␈εα+␈↓ ¬G␈ελx␈↓ ¬i␈εα(1␈ε⊗␈αλ␈␈↓ ε;␈ελv␈↓ εN␈ελx␈↓ εq␈εα)␈αλ+␈↓ π1␈ελx␈↓ πS␈εα(1␈ε⊗␈αλ␈␈↓ λ%␈ελv␈↓ λ8␈ελx␈↓ λZ␈εα)
␈β?␈↓ ¬→␈ε↓␈␈↓ λq␈ε↓↓
␈βA␈↓ β{␈εn␈↓ ∧
␈ε¬+1␈↓ ¬↓␈εn␈↓ ¬W␈εn␈↓ ε←␈εn␈↓ πA␈εn␈↓ λH␈εn
␈β←␈↓ ∧B␈εα=␈↓ ∧p␈ελx␈↓ ¬'␈εα1␈αλ+␈αλ(1␈ε⊗␈αλ␈␈↓ ε?␈ελv␈↓ εR␈ελx␈↓ εt␈εα)(1␈αλ+␈αλ(1␈ε⊗␈αλ␈␈↓ λ$␈ελv␈↓ λ7␈ελx␈↓ λY␈εα))␈↓ λ␈␈εα,
␈βl␈↓ ¬↓␈εn␈↓ εb␈εn␈↓ λG␈εn
␈β8␈↓ ↓H␈εαand␈αsimilar␈αform␈α␈ulas␈αhold␈αfor␈αfourth␈αorder␈αcon␈α␈v␈α␈ergence,␈αetc.;␈αsee␈αP.␈αRabino␈α␈witz,
␈βc␈↓ ↓H␈ε∂CA␈α␈CM␈ε∩␈α⊂4␈εα␈α⊂(1961),␈α⊃98.␈α→For␈α⊂calculations␈α⊂on␈α⊂extremely␈α⊂large␈α⊂n␈α␈um␈α␈bers,␈α⊃Newton's
␈β
∞␈↓ ↓H␈εαsecond-order␈α∞method␈α∂and␈α∞subsequen␈α␈t␈α∂m␈α␈ultiplication␈α∞by␈↓ λC␈ελu␈↓ λg␈εαcan␈α∞actually␈α∂be␈α∞con-
␈β
:␈↓ ↓H␈εαsiderably␈α
faster␈αthan␈α
Algorithm␈αD␈↓ ¬\␈εα,␈α
if␈αw␈α␈e␈α
increase␈αthe␈α
precision␈αof␈↓ D␈ελx␈↓ q␈εαat␈αeach␈α
step
␈β
G␈↓ U␈εn
␈β
e␈↓ ↓H␈εαand␈αλif␈α w␈α␈e␈α also␈α use␈α the␈α fast␈αλm␈α␈ultiplication␈α routines␈α of␈α Section␈α 4.3.3.␈α(See␈αλAlgorithm
␈β∞⊂␈↓ ↓H␈εα4.3.3D␈αfor␈αdetails.)␈αSome␈αrelated␈αiterativ␈α␈e␈αschemes␈αhav␈α␈e␈αbeen␈αdiscussed␈αby␈αE.␈αV.
␈β∞;␈↓ ↓H␈εαKrishnam␈α␈urth␈α␈y,␈ε∂␈αIEEE␈αTrans.␈ε∩␈αC↑19␈εα␈α(1970),␈α227↑231.
␈β∞x␈↓ ↓b␈εα3)␈↓ α␈εαDivision␈αmethods␈αhav␈α␈e␈αalso␈αbeen␈αbased␈αon␈αthe␈αevaluation␈αof
␈β∂N␈↓ ∧v␈ε↓ ␈↓
␈ε↓!
␈β∂Q␈↓ π∀␈ε¬2␈↓ λ≥␈ε¬3
␈β∂Y␈↓ ¬S␈ε↓∩␈↓ εβ␈ε↓∪␈↓ εM␈ε↓∩␈↓ ε}␈ε↓∪␈↓ πW␈ε↓∩␈↓ λπ␈ε↓∪
␈β∂]␈↓ βg␈ελu␈↓ ∧\␈ελu␈↓ ¬o␈ελ∂␈↓ εj␈ελ∂␈↓ πs␈ελ∂
␈β∂s␈↓ ∧*␈εα=␈↓ ¬
␈εα1␈ε⊗␈αλ␈␈↓ ε!␈εα+␈↓ π+␈ε⊗␈␈↓ λ4␈εα+␈↓ λ`␈ε⊗↓␈αε↓␈αε↓␈↓ '␈εα.
␈β⊂∧␈↓ βG␈∧⊂∧βGαU␈↓ ∧\␈∧⊂∧∧\α⊗␈↓ ¬m␈∧⊂∧¬mα∪␈↓ εg␈∧⊂∧εgα∪␈↓ πq␈∧⊂∧πqα∪
␈β⊂␈↓ βG␈ελv␈↓ βb␈εα+␈↓ ∧∞␈ελ∂␈↓ ∧]␈ελv␈↓ ¬m␈ελv␈↓ εg␈ελv␈↓ πq␈ελv
␈β⊂o␈↓ ↓H␈εαSee␈α∞H.␈α∂H.␈α∂Laughlin,␈ε∂␈α∂AMM␈ε∩␈α∂37␈εα␈α∂(1930),␈α∂287↑293.␈α∃We␈α∂hav␈α␈e␈α∞used␈α∂this␈α∂idea␈α∂in␈α∞the
␈β⊃~␈↓ ↓H␈εαdouble-precision␈αcase␈α(Eq.␈α4.2.3↑3).
␈β∪(
␈β↓Y␈↓ ↓H␈εα262␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα(␈↓ α␈εαBesides␈α∪the␈α∪references␈α∪just␈α∩cited,␈α∃the␈α∪follo␈α␈wing␈α∪early␈α∪articles␈α∩concerning
␈βαS␈↓ ↓H␈εαm␈α␈ultiple-precision␈αεarithmetic␈αεare␈αεof␈αεin␈α␈terest:␈α High-precision␈αε⎇oating-poin␈α␈t␈αεroutines
␈βα}␈↓ ↓H␈εαusing␈α ones'␈α
complemen␈α␈t␈α arithmetic␈α
are␈α described␈α
by␈α A.␈α
H.␈α Stroud␈α and␈α
D.␈α Secrest,
␈ββ*␈↓ ↓H␈ε∂Comp.␈α
J.␈ε∩␈α6␈εα␈α(1963),␈α62↑66.␈αExtended-precision␈α
subroutines␈αfor␈αuse␈αin␈α
F␈α␈OR␈α⎇TRAN
␈ββU␈↓ ↓H␈εαprograms␈αare␈αdescribed␈αby␈αB.␈αI.␈αBlum,␈ε∂␈αCA␈α␈CM␈ε∩␈α8␈εα␈α(1965),␈α318↑320;␈αand␈αfor␈αuse␈αin
␈β∧␈↓ ↓H␈εαAL␈α␈GOL␈αλby␈απM.␈αλTienari␈αλand␈αλV.␈αλSuok␈α␈onautio,␈ε∂␈α BIT␈ε∩␈απ6␈εα␈αλ(1966),␈α 332↑338.␈αArithmetic␈απon
␈β∧+␈↓ ↓H␈εαin␈α␈tegers␈αwith␈ε∂␈αunlimited␈εα␈αprecision,␈αmaking␈αuse␈αof␈αlink␈α␈ed␈αmemory␈αallocation␈αtech-
␈β∧V␈↓ ↓H␈εαniques,␈αhas␈α
been␈αelegan␈α␈tly␈αdescribed␈α
by␈αG.␈αE.␈α
Collins,␈ε∂␈αCA␈α␈CM␈ε∩␈α9␈εα␈α(1966),␈α
578↑589.
␈β¬α␈↓ ↓H␈εαFor␈απa␈αεm␈α␈uch␈απlarger␈απrepertoire␈απof␈απoperations,␈αλincluding␈απlogarithms␈απand␈αεtrigonometric
␈β¬-␈↓ ↓H␈εαfunctions,␈αsee␈αR.␈αP.␈αBren␈α␈t,␈ε∂␈αA␈α␈CM␈αTrans.␈αMath.␈αSoft␈α␈ware␈ε∩␈α4␈εα␈α(1978),␈α57↑81.
␈β¬Y␈↓ α␈εαWe␈α∂hav␈α␈e␈α∂restricted␈α∂our␈α∂discussion␈α∂in␈α∂this␈α∂section␈α∂to␈α∂arithmetic␈α∞techniques
␈βε∧␈↓ ↓H␈εαfor␈αuse␈αin␈αcomputer␈αprogramming.␈αThere␈αare␈αman␈α␈y␈αalgorithms␈αfor␈ε∂␈αhardware␈εα␈αim-
␈βε/␈↓ ↓H␈εαplemen␈α␈tation␈α
of␈αarithmetic␈α
operations␈αthat␈α
are␈αv␈α␈ery␈α
in␈α␈teresting,␈αbut␈αthey␈α
appear
␈βεZ␈↓ ↓H␈εαto␈αλbe␈αλinapplicable␈αλto␈αλcomputer␈αλprograms␈α for␈αλhigh-precision␈αλn␈α␈um␈α␈bers;␈α for␈αλexample,
␈βπε␈↓ ↓H␈εαsee␈α∂G.␈α∂W.␈α⊂Reit␈α␈wiesner,␈α⊂\Binary␈α∂Arithmetic,"␈ε∂␈α⊂Advances␈α∂in␈α⊂Computers␈ε∩␈α∂1␈εα␈α∂(New
␈βπ1␈↓ ↓H␈εαYork:␈α
Academic␈αλPress,␈α
1960),␈α 231↑308;␈α O.␈α L.␈α MacSorley,␈ε∂␈α Proc.␈αλIRE␈ε∩␈α 49␈εα␈αλ(1961),␈α 67↑
␈βπ\␈↓ ↓H␈εα91;␈α
G.␈α
Metz,␈ε∂␈αIRE␈α
Trans.␈ε∩␈α
EC↑11␈εα␈α
(1962),␈α
76↑764;␈αH.␈α
L.␈α
Garner,␈α
\Num␈α␈ber␈α
Systems
␈βλπ␈↓ ↓H␈εαand␈αArithmetic,"␈ε∂␈αAdvances␈αin␈αComputers␈ε∩␈α6␈εα␈α(New␈αYork:␈αAcademic␈αPress,␈α1965),
␈βλ2␈↓ ↓H␈εα131↑194.␈α⊗The␈α∂minim␈α␈um␈α∂achievable␈α⊂ex␈α␈ecution␈α∂time␈α∂for␈α⊂hardware␈α∂addition␈α∂and
␈βλ↑␈↓ ↓H␈εαm␈α␈ultiplication␈αλoperations␈αλhas␈αλbeen␈αλin␈α␈v␈α␈estigated␈αλby␈αλS.␈αλWinograd,␈ε∂␈αλJA␈α␈CM␈ε∩␈αλ12␈εα␈αλ(1965),
␈β ␈↓ ↓H␈εα277↑285,␈ε∩␈α
14␈εα␈α
(1967),␈α793↑802;␈α
by␈α
R.␈α
P.␈α
Bren␈α␈t,␈ε∂␈αIEEE␈α
Trans.␈ε∩␈α
C↑19␈εα␈α
(1970),␈α
758↑759;
␈β 4␈↓ ↓H␈εαand␈αby␈αR.␈αW.␈αFlo␈α␈yd,␈ε∂␈αIEEE␈αSymp.␈αFoundations␈αComp.␈αSci.␈ε∩␈α16␈εα␈α(1975),␈α3↑5.
␈β
>␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈β∪␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε 42␈↓ α;␈εβ]␈α⊗Stu␈α␈dy␈α the␈α
ea␈α␈rly␈α
histor␈α␈y␈α
of␈α
the␈α
cla␈α␈ssi␈α↓c␈α␈al␈α
algorith␈α␈ms␈α
for␈α
arithm␈α␈etic,␈αb␈α␈y␈α
look␈α␈ing
␈β:␈↓ ↓H␈εβu␈α␈p␈αth␈α␈e␈αwritings␈αo␈α␈f,␈αsa␈α␈y,␈αSu␈α␈n␈αTs␈↓ ¬
␈εβu␈↓ ¬∞␈εβ⊃␈↓ ¬∨␈εβ,␈αal-Kho␈α␈w␈↓ ε-␈εβ∂␈↓ ε-␈εβa␈↓ ε=␈εβrizm␈↓ εz␈εβ∂␈↓ ε}␈εβ␈↓ ππ␈εβ,␈αFib␈α␈ona␈α␈cci,␈αand␈α
Rob␈α␈ert␈αReco␈α␈rde␈α␈,␈αa␈α␈nd
␈βb␈↓ ↓H␈εβb␈α␈y␈α
tra␈α␈nslatin␈α␈g␈α
th␈α␈eir␈α
meth␈α␈ods␈α
a␈α␈s␈α
faithfu␈α␈l␈α↓ly␈α as␈α
p␈α␈ossible␈α
in␈α␈to␈α prec␈α␈i␈α↓se␈α algorith␈α␈mic␈α
no␈α␈tation␈α␈.
␈β↔␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε 15␈↓ α;␈εβ]␈α⊗Gen␈α␈eralize␈αAlgorith␈α␈m␈αA␈α
so␈αtha␈α␈t␈α
it␈αdo␈α␈es␈α\co␈α␈l␈α↓u␈α␈mn␈αa␈α␈dd␈α␈iti␈α↓o␈α␈n,"␈αi.␈α↓e.,␈α
o␈α␈bta␈α␈i␈α↓n␈α␈s␈αthe
␈β?␈↓ ↓H␈εβsu␈α␈m␈αof␈↓ α5␈ε m␈↓ α]␈εβno␈α␈nn␈α␈ega␈α␈ti␈α↓v␈α}e␈↓ ∧↔␈ε n␈↓ ∧+␈εβ-plac␈α␈e␈αi␈α↓n␈α}tege␈α␈rs.␈α(Assu␈α␈me␈αth␈α␈at␈↓ π]␈ε m␈↓ λβ␈ε↔∀␈↓ λ.␈ε b␈↓ λ;␈εβ.)
␈βq␈↓ βN␈ε∃MIX
␈βt␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε 21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈απa␈↓ ∧∀␈εβpro␈α␈gram␈απf␈α↓o␈α␈r␈αλthe␈αλa␈α␈lgorith␈α␈m␈αλof␈αλex␈α}ercise␈αλ2,␈α a␈α␈nd␈απestimate␈απi␈α↓ts␈αλru␈α␈nn␈α␈ing
␈β
≠␈↓ ↓H␈εβtime␈α
as␈αa␈αfun␈α␈ction␈α
of␈↓ ∧α␈ε m␈↓ ∧+␈εβa␈α␈nd␈↓ ∧k␈ε n␈↓ ∧␈␈εβ.
␈β
P␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε M21␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈αa␈α
form␈α␈al␈α
pro␈α␈of␈α
of␈α
t␈α␈he␈α
v␈α␈alidity␈αof␈α
Algorith␈α␈m␈α
A␈↓ λl␈εβ,␈α∞u␈α␈sing␈αthe␈α
m␈α␈etho␈α␈d␈α
o␈α␈f
␈β
x␈↓ ↓H␈εβ\␈α␈i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β∞-␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε 21␈↓ α;␈εβ]␈α⊗Algorith␈α␈m␈αA␈αa␈α␈dd␈α␈s␈αth␈α␈e␈αt␈α␈w␈α␈o␈αin␈α␈pu␈α␈ts␈αb␈α␈y␈αg␈α␈oing␈α
from␈α
righ␈α␈t␈α
to␈αleft,␈αb␈α␈ut␈αso␈α␈metime␈α␈s
␈β∞U␈↓ ↓H␈εβth␈α␈e␈αλdata␈αλis␈α m␈α␈ore␈αλread␈α␈il␈α↓y␈αλa␈α␈ccessib␈α␈l␈α↓e␈αλfrom␈αλleft␈α to␈αλrigh␈α}t.␈αDe␈α␈si␈α↓g␈α␈n␈αλan␈αλalgo␈α␈rithm␈αλtha␈α␈t␈α p␈α␈rod␈α␈uce␈α␈s
␈β∞|␈↓ ↓H␈εβth␈α␈e␈αsa␈α␈me␈αa␈α␈nsw␈α␈er␈αa␈α␈s␈αAlgorith␈α␈m␈αA␈↓ ¬!␈εβ,␈αbu␈α␈t␈αth␈α␈at␈αge␈α␈nera␈α␈tes␈αth␈α␈e␈αd␈α␈i␈α↓g␈α␈i␈α↓ts␈α
of␈αth␈α␈e␈αan␈α␈sw␈α␈er␈αfrom␈α
l␈α↓e␈α␈ft
␈β∂$␈↓ ↓H␈εβto␈α
righ␈α}t,␈α∂go␈α␈i␈α↓n␈α␈g␈α∞b␈α␈ack␈α
to␈α
cha␈α␈ng␈α␈e␈α∞p␈α␈reviou␈α␈s␈α∞v␈α␈alues␈α
i␈α↓f␈α
a␈α∞ca␈α␈rry␈α
occu␈α␈rs␈α∞to␈α
mak␈α}e␈α∞a␈α
prev␈α␈iou␈α␈s
␈β∂L␈↓ ↓H␈εβv␈α␈alue␈α
inco␈α␈rrect.␈α_[␈ε⊂Note␈α␈:␈εβ␈αEa␈α␈rl␈α↓y␈α
Hind␈α␈u␈α
an␈α␈d␈αAra␈α␈bic␈α
man␈α}uscrip␈α␈ts␈αd␈α␈ealt␈αwith␈α
ad␈α␈dition␈α
from
␈β∂s␈↓ ↓H␈εβleft␈αto␈αrigh␈α␈t␈αin␈αthis␈αway;␈α
th␈α␈e␈α
righ␈α}t-to-left␈αadd␈α␈iti␈α↓o␈α␈n␈αalgo␈α␈ri␈α↓th␈α␈m␈αwas␈αa␈αre|n␈α␈emen␈α}t␈α
d␈α␈ue␈αto
␈β⊂≠␈↓ ↓H␈εβlat␈α␈er␈αArab␈α␈i␈α↓c␈αwriters,␈αp␈α␈erha␈α␈ps␈αb␈α␈ecau␈α␈se␈αArab␈α␈ic␈αis␈αwritte␈α␈n␈αfrom␈αrig␈α␈h␈α␈t␈αto␈αleft.]
␈β⊂L␈↓ ↓;␈ε↓x
␈β⊂P␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε 22␈↓ α;␈εβ]␈α⊗Design␈α
an␈αa␈α␈l␈α↓g␈α␈orithm␈α
that␈αa␈α␈dd␈α␈s␈αf␈α↓r␈α␈om␈αleft␈αto␈αrigh␈α}t␈α(a␈α␈s␈αi␈α↓n␈α
ex␈α␈erc␈α␈i␈α↓se␈α
5),␈αb␈α␈ut␈αy␈α}ou␈α␈r
␈β⊂w␈↓ ↓H␈εβa␈α␈l␈α↓g␈α␈orith␈α␈m␈α∂sho␈α␈uld␈α∞no␈α␈t␈α∂store␈α∞a␈α∂d␈α␈i␈α↓g␈α␈it␈α∂of␈α∂th␈α␈e␈α∂a␈α␈nsw␈α␈er␈α∂u␈α␈n␈α␈til␈α∂th␈α␈i␈α↓s␈α∞digit␈α∂ca␈α␈nn␈α␈ot␈α∂p␈α␈ossibly␈α∞be
␈β⊃∨␈↓ ↓H␈εβa␈α␈{␈α↓e␈α␈cted␈αby␈αfutu␈α␈re␈α
ca␈α␈rries;␈α∞th␈α␈ere␈α
is␈α
to␈αbe␈αno␈αcha␈α␈ng␈α␈i␈α↓n␈α␈g␈α
o␈α␈f␈α
an␈α}y␈α
a␈α␈nsw␈α␈er␈αdigit␈α
o␈α␈nce␈αi␈α↓t␈αha␈α␈s
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α CLASSICA␈α␈L␈α AL␈α␈GORITH␈α␈MS␈↓
v␈εα263
␈βα*␈↓ ↓H␈εβb␈α␈een␈αλstored␈α␈.␈α∃[␈ε⊂Hin␈α␈t:␈εβ␈α
Keep␈αλtrack␈αλof␈α the␈α n␈α}um␈α␈b␈α␈er␈α of␈α co␈α␈nsec␈α␈utiv␈α␈e␈α (␈↓ λ@␈ε b␈↓ λR␈ε↔␈␈εβ␈α¬1␈α␈)␈α↓'s␈α th␈α␈at␈α ha␈α␈v␈α␈e␈α n␈α␈ot␈α y␈α␈e␈α␈t
␈βαR␈↓ ↓H␈εβb␈α␈een␈αsto␈α␈red␈αin␈αthe␈αan␈α␈sw␈α␈er.]␈α
Th␈α␈i␈α↓s␈αsort␈αof␈αalgo␈α␈ri␈α↓th␈α␈m␈αw␈α␈ould␈αb␈α␈e␈αa␈α␈pp␈α␈rop␈α␈ri␈α↓a␈α␈te,␈αfor␈αex␈α␈amp␈α␈le,
␈βαy␈↓ ↓H␈εβin␈α a␈α situa␈α␈ti␈α↓o␈α␈n␈α where␈α th␈α␈e␈α
in␈α␈pu␈α␈t␈α
a␈α␈nd␈α ou␈α␈tpu␈α␈t␈α n␈α␈um␈α}bers␈α are␈α to␈α be␈α rea␈α␈d␈α an␈α␈d␈α wri␈α↓tte␈α␈n␈α from␈α l␈α↓e␈α␈ft
␈ββ!␈↓ ↓H␈εβto␈α
ri␈α↓g␈α␈h␈α␈t␈αo␈α␈n␈αma␈α␈gne␈α␈ti␈α↓c␈αt␈α␈ape␈α␈s,␈αo␈α␈r␈αi␈α↓f␈αth␈α␈ey␈αa␈α␈pp␈α␈ear␈αin␈αstra␈α␈igh␈α␈t␈αlinea␈α␈r␈αli␈α↓sts.
␈ββR␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε M26␈↓ αX␈εβ]␈α⊗Det␈α␈ermine␈αλthe␈αλav␈α}erag␈α␈e␈α n␈α␈u␈α␈m␈α␈b␈α␈er␈α o␈α␈f␈α times␈α th␈α␈e␈α a␈α␈l␈α↓g␈α␈orithm␈αλof␈αλex␈α␈erc␈α␈i␈α↓se␈αλ5␈αλwi␈α↓ll␈α |␈α␈nd
␈ββz␈↓ ↓H␈εβth␈α␈at␈α a␈αλca␈α␈rry␈α m␈α␈ak␈α␈e␈α␈s␈α it␈α nec␈α␈essary␈αλto␈αλgo␈α b␈α␈ac␈α␈k␈α a␈α␈nd␈αλcha␈α␈ng␈α␈e␈↓ πX␈ε k␈↓ πq␈εβdigits␈α o␈α␈f␈α the␈αλpa␈α␈rti␈α↓a␈α␈l␈α an␈α␈sw␈α␈er,␈α
fo␈α␈r
␈β∧!␈↓ ↓H␈ε k␈↓ ↓a␈εβ=␈α
1␈α␈,␈α
2␈α␈,␈↓ αR␈εβ.␈α¬.␈αε.␈↓ α}␈εβ,␈↓ β⊂␈ε n␈↓ β$␈εβ.␈α(Assu␈α␈me␈αλthat␈αλbo␈α␈th␈αλinp␈α␈uts␈αλare␈αλi␈α↓n␈α␈de␈α␈pen␈α␈de␈α␈n␈α␈tly␈αλan␈α␈d␈αλun␈α␈i␈α↓fo␈α␈rmly␈αλdistribu␈α␈ted
␈β∧E␈↓ β1␈εn
␈β∧I␈↓ ↓H␈εβb␈α␈et␈α␈w␈α␈een␈α
0␈αan␈α␈d␈↓ β$␈ε b␈↓ βI␈ε↔␈␈εβ␈απ1.)
␈β∧w␈↓ βv␈ε∃MIX
␈β∧z␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε M26␈↓ αX␈εβ]␈α⊗Write␈α∞a␈↓ ∧B␈εβprog␈α␈ram␈α
f␈α↓o␈α␈r␈α∞th␈α␈e␈α∞algo␈α␈ri␈α↓th␈α␈m␈α∞o␈α␈f␈α∞ex␈α␈e␈α␈rcise␈α∞5,␈α∂a␈α␈nd␈α
de␈α␈termine␈α
i␈α↓t␈α␈s
␈β¬"␈↓ ↓H␈εβa␈α␈v␈α␈era␈α␈ge␈α ru␈α␈nn␈α␈i␈α↓n␈α␈g␈α time␈α b␈α␈ased␈α o␈α␈n␈α th␈α␈e␈α exp␈α␈ected␈αλn␈α␈u␈α␈m␈α␈be␈α␈r␈α
o␈α␈f␈α
c␈α␈arries␈α as␈α co␈α␈mpu␈α␈ted␈α in␈α t␈α␈he␈α tex␈α␈t.
␈β¬O␈↓ ↓;␈ε↓x
␈β¬S␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε 21␈↓ α;␈εβ]␈α⊗Gen␈α␈eralize␈απAlgor␈α␈i␈α↓th␈α␈m␈απA␈απto␈απob␈α␈tain␈αεan␈απa␈α␈l␈α↓g␈α␈orithm␈αεtha␈α␈t␈αλa␈α␈dd␈α␈s␈απt␈α␈w␈α␈o␈↓ B␈ε n␈↓ V␈εβ-plac␈α␈e␈απn␈α␈u␈α␈m␈α␈ber␈α␈s
␈β¬{␈↓ ↓H␈εβin␈αa␈ε⊂␈α
mix␈α␈ed␈α␈-rad␈α␈i␈α↓x␈εβ␈αn␈α␈u␈α␈m␈α␈be␈α␈r␈α
system␈α␈,␈α∞with␈α
b␈α␈ases␈↓ εf␈ε b␈↓ ε}␈εβ,␈↓ π∃␈ε b␈↓ π.␈εβ,␈↓ πE␈εβ.␈αε.␈α¬.␈↓ πy␈εβ(from␈αri␈α↓g␈α␈h␈α␈t␈α
to␈α
left).␈α⊃Th␈α␈u␈α␈s␈α
the
␈βε¬␈↓ εr␈εε0␈↓ π!␈εε1
␈βε"␈↓ ↓H␈εβlea␈α␈st␈α
sig␈α␈ni|ca␈α␈n␈α␈t␈α dig␈α␈i␈α↓ts␈α lie␈α
b␈α␈et␈α␈w␈α␈een␈α 0␈α a␈α␈nd␈↓ ε␈ε b␈↓ ε(␈ε↔␈␈εβ␈αε1␈α␈,␈α
the␈α n␈α␈ext␈α d␈α␈i␈α↓g␈α␈i␈α↓ts␈α lie␈α
b␈α␈et␈α␈w␈α␈een␈αλ0␈α and␈↓
N␈ε b␈↓
l␈ε↔␈␈εβ␈αε1␈α␈,
␈βε-␈↓ ε↔␈εε0␈↓
Z␈εε1
␈βεJ␈↓ ↓H␈εβe␈α␈tc.;␈αcf.␈αEq.␈α4.1↑␈α␈9.
␈βε{␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε 18␈↓ α;␈εβ]␈α⊗Would␈αProgra␈α␈m␈αS␈αw␈α␈ork␈αp␈α␈rop␈α␈erly␈αi␈α↓f␈αthe␈αi␈α↓n␈α␈struc␈α␈ti␈α↓o␈α␈ns␈αon␈αli␈α↓n␈α␈es␈α0␈α␈6␈αand␈α0␈α␈7␈αw␈α␈ere
␈βπ#␈↓ ↓H␈εβin␈α}terch␈α␈ang␈α␈ed?␈αIf␈αth␈α␈e␈αi␈α↓n␈α␈stru␈α␈ctions␈αo␈α␈n␈αlines␈α0␈α␈5␈αan␈α␈d␈α0␈α␈6␈αw␈α␈ere␈αin␈α␈terc␈α␈ha␈α␈nge␈α␈d?
␈βπT␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε 10␈↓ α;␈εβ]␈α⊗Design␈α
an␈α
algo␈α␈ri␈α↓th␈α␈m␈α∞th␈α␈at␈α∞co␈α␈mp␈α␈ares␈α∞t␈α␈w␈α␈o␈α
non␈α␈ne␈α␈gativ␈α}e␈↓ λt␈ε n␈↓ λ␈εβ-place␈α
i␈α↓n␈α}tege␈α␈rs␈↓
i␈ε u␈↓ ␈εβ=
␈βπ|␈↓ ↓H␈εβ(␈↓ ↓S␈ε u␈↓ ↓r␈ε u␈↓ α_␈εβ.␈αε.␈α¬.␈↓ αD␈ε u␈↓ αh␈εβ)␈↓ β ␈εβa␈α␈nd␈↓ βJ␈ε v␈↓ βd␈εβ=␈α
(␈↓ ∧~␈ε v␈↓ ∧5␈ε v␈↓ ∧V␈εβ.␈αε.␈αε.␈↓ ¬α␈ε v␈↓ ¬!␈εβ)␈↓ ¬8␈εβ,␈αto␈αd␈α␈eterm␈α␈i␈α↓n␈α␈e␈αwhe␈α␈ther␈↓ λ⊂␈ε u␈↓ λ-␈εβ<␈↓ λW␈ε v␈↓ λi␈εβ,␈↓ λ⎇␈ε u␈↓ ~␈εβ=␈↓ E␈ε v␈↓ V␈εβ,␈αo␈α␈r␈↓
∪␈ε u␈↓
1␈εβ>␈↓
[␈ε v␈↓
m␈εβ.
␈βλε␈↓ ↓f␈εε1␈↓ αε␈εε2␈↓ αW␈εn␈↓ αs␈εb␈↓ ∧)␈εε1␈↓ ∧D␈εε2␈↓ ¬⊃␈εn␈↓ ¬,␈εb
␈βλ-␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε 16␈↓ α;␈εβ]␈α⊗Algorith␈α␈m␈α
S␈αassu␈α␈mes␈αtha␈α␈t␈α
w␈α␈e␈αkn␈α␈o␈α␈w␈αwhich␈αo␈α␈f␈α
th␈α␈e␈αt␈α␈wo␈αin␈α␈pu␈α␈t␈α
o␈α␈pera␈α␈nd␈α␈s␈α
is␈αthe
␈βλU␈↓ ↓H␈εβlar␈α␈ger;␈α
if␈α this␈α infor␈α␈mation␈αλi␈α↓s␈α n␈α␈ot␈α k␈α␈no␈α}wn,␈α
w␈α␈e␈α c␈α␈ould␈αλgo␈α a␈α␈hea␈α␈d␈α an␈α␈d␈α p␈α␈erform␈αλthe␈α su␈α␈btra␈α␈ction
␈βλ|␈↓ ↓H␈εβa␈α␈n␈α␈y␈α␈way,␈α
and␈αw␈α␈e␈α
w␈α␈ould␈α|n␈α␈d␈α
th␈α␈at␈α
an␈αextra␈α\bo␈α␈rro␈α␈w"␈α
is␈α
still␈α∞p␈α␈resen␈α}t␈α
at␈α
the␈αend␈αof␈α
the
␈β $␈↓ ↓H␈εβa␈α␈l␈α↓g␈α␈orith␈α␈m.␈αDesign␈α
a␈α␈no␈α␈ther␈α
a␈α␈l␈α↓g␈α␈orithm␈α
th␈α␈at␈α
co␈α␈uld␈α
b␈α␈e␈α
used␈α (i␈α↓f␈α
th␈α␈ere␈α
i␈α↓s␈α
a␈α
\␈α␈bo␈α␈rro␈α␈w"␈α
p␈α␈resen␈α}t
␈β K␈↓ ↓H␈εβa␈α␈t␈α∞t␈α␈he␈α
en␈α␈d␈α
of␈α
Al␈α↓g␈α␈orith␈α␈m␈α∞S␈α␈)␈α
to␈α
comp␈α␈lemen␈α}t␈α
(␈↓ εW␈ε w␈↓ εy␈ε w␈↓ π"␈εβ.␈α¬.␈αε.␈↓ πN␈ε w␈↓ πt␈εβ)␈↓ λ_␈εβa␈α␈nd␈α
th␈α␈erefo␈α␈re␈α
to␈α
obt␈α␈ain␈α
the
␈β V␈↓ εm␈εε1␈↓ π∂␈εε2␈↓ πd␈εn␈↓ π␈␈εb
␈β s␈↓ ↓H␈εβa␈α␈bso␈α␈l␈α↓u␈α␈te␈αv␈α␈alue␈αo␈α␈f␈αth␈α␈e␈αd␈α␈i␈α↓{eren␈α␈ce␈αo␈α␈f␈↓ ¬A␈ε u␈↓ ¬`␈εβa␈α␈nd␈↓ ε!␈ε v␈↓ ε2␈εβ.
␈β
!␈↓ βT␈ε∃M␈α␈IX
␈β
$␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε 21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≤␈εβprog␈α␈ram␈α
tha␈α␈t␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓ies␈α
(␈↓ π
␈ε u␈↓ π,␈ε u␈↓ πR␈εβ.␈α¬.␈αε.␈↓ π}␈ε u␈↓ λ!␈εβ)␈↓ λB␈εβby␈↓ λr␈ε v␈↓ β␈εβ,␈αwh␈α␈ere␈↓ w␈ε v␈↓
∀␈εβis␈αa␈α
sing␈α␈l␈α↓e␈α␈-
␈β
/␈↓ π ␈εε1␈↓ π?␈εε2␈↓ λ⊃␈εn␈↓ λ,␈εb
␈β
L␈↓ ↓H␈εβp␈α␈recision␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈α∞(i.␈α↓e.,␈α∂0␈ε↔␈α
∀␈↓ ∧k␈ε v␈↓ ¬
␈εβ<␈↓ ¬9␈ε b␈↓ ¬G␈εβ),␈α∂p␈α␈rod␈α␈uc␈α␈i␈α↓n␈α␈g␈α∞th␈α␈e␈α∞a␈α␈nsw␈α␈er␈α∞(␈↓ λ@␈ε w␈↓ λb␈ε w␈↓ ␈εβ.␈α¬.␈αε.␈↓ 7␈ε w␈↓ ]␈εβ)␈↓ t␈εβ.␈α∪Ho␈α␈w␈α∞m␈α␈u␈α␈ch
␈β
W␈↓ λV␈εε0␈↓ λx␈εε1␈↓ M␈εn␈↓ i␈εb
␈β
t␈↓ ↓H␈εβru␈α␈nn␈α␈ing␈αtime␈α
i␈α↓s␈αre␈α␈quired␈α␈?
␈β!␈↓ ↓;␈ε↓x
␈β%␈↓ ↓V␈ε∪14.␈↓ α␈εβ[␈ε M24␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈αa␈αform␈α␈al␈α
p␈α␈roof␈αof␈αthe␈αva␈α␈l␈α↓id␈α␈i␈α↓ty␈αo␈α␈f␈α
Algo␈α␈ri␈α↓th␈α␈m␈αM␈↓ λn␈εβ,␈α
u␈α␈si␈α↓n␈α␈g␈αthe␈αmeth␈α␈od␈αo␈α␈f
␈βL␈↓ ↓H␈εβ\␈α␈i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β}␈↓ ↓V␈ε∪15.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗If␈α
w␈α␈e␈α
wish␈αto␈α
form␈αthe␈α
p␈α␈rod␈α␈uc␈α␈t␈α
of␈α
t␈α␈w␈α␈o␈↓ π9␈ε n␈↓ πM␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
fra␈α␈ctions,␈α
(.␈↓ X␈ε u␈↓ w␈ε u␈↓
≥␈εβ.␈α¬.␈αε.␈↓
I␈ε u␈↓
l␈εβ)␈↓ ␈ε↔α
␈βλ␈↓ k␈εε1␈↓
␈εε2␈↓
\␈εn␈↓
w␈εb
␈β%␈↓ ↓H␈εβ(.␈↓ ↓\␈ε v␈↓ ↓w␈ε v␈↓ α_␈εβ.␈αε.␈αε.␈↓ αE␈ε v␈↓ αd␈εβ)␈↓ αz␈εβ,␈α
an␈α␈d␈α to␈α
o␈α␈btain␈α on␈α␈l␈α↓y␈α a␈α␈n␈↓ ¬P␈ε n␈↓ ¬d␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
a␈α␈pp␈α␈ro␈α␈xima␈α␈tion␈α (.␈↓ λ5␈ε w␈↓ λW␈ε w␈↓ ␈εβ.␈α¬.␈αε.␈↓ ,␈ε w␈↓ R␈εβ)␈↓ r␈εβto␈α
th␈α␈e␈α
res␈α␈ult,
␈β0␈↓ ↓k␈εε1␈↓ αε␈εε2␈↓ αS␈εn␈↓ αo␈εb␈↓ λK␈εε1␈↓ λm␈εε2␈↓ B␈εn␈↓ ↑␈εb
␈βM␈↓ ↓H␈εβAlgo␈α␈rithm␈αλM␈α co␈α␈uld␈αλbe␈αλused␈αλto␈αλob␈α␈tain␈αλa␈α 2␈↓ ε␈ε n␈↓ ε∨␈εβ-p␈α␈lace␈αλansw␈α␈e␈α␈r␈α tha␈α␈t␈α is␈α su␈α␈bseq␈α␈uen␈α}tly␈α ro␈α␈un␈α␈ded␈αλto
␈βu␈↓ ↓H␈εβth␈α␈e␈α
de␈α␈si␈α↓re␈α␈d␈α
ap␈α␈pro␈α␈x␈α␈imation␈α␈.␈αBut␈α
this␈α
in␈α␈v␈α}olv␈α␈es␈α
ab␈α␈ou␈α␈t␈αt␈α␈wice␈α
a␈α␈s␈αm␈α␈u␈α␈ch␈α
w␈α␈o␈α␈rk␈α
as␈α
is␈αn␈α␈ece␈α␈ssary
␈β
≤␈↓ ↓H␈εβfo␈α␈r␈α reaso␈α␈nab␈α␈le␈α accu␈α␈rac␈α␈y,␈α
sin␈α␈ce␈α the␈α p␈α␈rod␈α␈uc␈α␈ts␈↓ ε:␈ε u␈↓ εX␈ε v␈↓ ε|␈εβfor␈↓ π.␈ε i␈↓ π@␈εβ+␈↓ πf␈ε j␈↓ π}␈εβ>␈↓ λ(␈ε n␈↓ λA␈εβ+␈α¬2␈α co␈α␈n␈α␈tribu␈α␈te␈α v␈α␈e␈α␈ry␈α littl␈α↓e
␈β
'␈↓ εN␈εi␈↓ εg␈εj
␈β
D␈↓ ↓H␈εβto␈α
the␈αa␈α␈nsw␈α␈er.
␈β
k␈↓ α␈εβGiv␈α␈e␈αa␈α␈n␈αestima␈α␈te␈αof␈αth␈α␈e␈αma␈α␈xim␈α␈um␈α
error␈αth␈α␈at␈αca␈α␈n␈αo␈α␈ccur,␈αif␈αthes␈α␈e␈αpro␈α␈du␈α␈cts␈↓
@␈ε u␈↓
↑␈ε v␈↓ ∧␈εβfo␈α␈r
␈β
v␈↓
S␈εi␈↓
m␈εj
␈β∞∪␈↓ ↓H␈ε i␈↓ ↓Z␈εβ+␈↓ α␈ε j␈↓ α_␈εβ>␈↓ αC␈ε n␈↓ α\␈εβ+␈αε2␈α a␈α␈re␈α
n␈α␈ot␈α com␈α␈pu␈α␈ted␈α du␈α␈ring␈α th␈α␈e␈α
m␈α␈u␈α␈ltiplication␈α␈,␈α
bu␈α␈t␈α
a␈α␈re␈α
a␈α␈ssum␈α␈ed␈α to␈α be␈α zero␈α␈.
␈β∞@␈↓ ↓;␈ε↓x
␈β∞D␈↓ ↓V␈ε∪16.␈↓ α␈εβ[␈ε 20␈↓ α;␈εβ]␈α⊗Design␈α an␈α
a␈α␈l␈α↓g␈α␈orithm␈α
th␈α␈at␈α
d␈α␈i␈α↓v␈α␈ides␈α
a␈α
n␈α␈on␈α␈neg␈α␈ativ␈α␈e␈↓ λ⊗␈ε n␈↓ λ*␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
in␈α␈teg␈α␈er␈α
(␈↓
↓␈ε u␈↓
!␈ε u␈↓
F␈εβ.␈αε.␈αε.␈↓
s␈ε u␈↓ ⊗␈εβ)
␈β∞O␈↓
∃␈εε1␈↓
4␈εε2␈↓ ε␈εn␈↓ !␈εb
␈β∞l␈↓ ↓H␈εβb␈α␈y␈↓ ↓z␈ε v␈↓ α␈εβ,␈α∞where␈↓ β¬␈ε v␈↓ β#␈εβis␈α∞a␈α
s␈α␈i␈α↓n␈α␈gle-pr␈α␈ecisi␈α↓o␈α␈n␈α
n␈α}um␈α␈b␈α␈er␈α
(i␈α↓.e.,␈α∞0␈α<␈↓ π`␈ε v␈↓ π␈␈εβ<␈↓ λ-␈ε b␈↓ λ:␈εβ),␈α∞pro␈α␈du␈α␈cing␈α
th␈α␈e␈α
qu␈α␈otien␈α}t
␈β∂∪␈↓ ↓H␈εβ(␈↓ ↓S␈ε w␈↓ ↓u␈ε w␈↓ α≡␈εβ.␈α¬.␈αε.␈↓ αJ␈ε w␈↓ αp␈εβ)␈↓ β∩␈εβa␈α␈nd␈α
remain␈α␈der␈↓ ∧p␈ε r␈↓ ∧}␈εβ.
␈β∂≡␈↓ ↓i␈εε1␈↓ α␈εε2␈↓ α`␈εn␈↓ α|␈εb
␈β∂E␈↓ ↓V␈ε∪17.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗In␈α
th␈α␈e␈α
n␈α␈otation␈α of␈α
Fi␈α↓g␈α␈.␈α6␈α␈,␈αa␈α␈ssume␈α
th␈α␈at␈↓ π"␈ε v␈↓ πF␈ε↔∃␈α
b␈↓ π}␈ε b␈↓ λ␈εβ/2␈ε↔␈α␈c␈εβ;␈αsh␈α␈o␈α␈w␈α
that␈α
if␈↓
∧␈ε u␈↓
-␈εβ=␈↓
X␈ε v␈↓
s␈εβ,␈αw␈α␈e
␈β∂O␈↓ π0␈εε1␈↓
↔␈εε0␈↓
f␈εε1
␈β∂l␈↓ ↓H␈εβm␈α}ust␈αh␈α␈av␈α␈e␈↓ αi␈ε q␈↓ β↓␈εβ=␈↓ β+␈ε b␈↓ β@␈ε↔␈␈εβ␈απ1␈αor␈↓ ∧-␈ε b␈↓ ∧B␈ε↔␈␈εβ␈απ2.
␈β⊂~␈↓ π→␈ε~0␈↓
Z␈ε~0
␈β⊂≡␈↓ ↓V␈ε∪18.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗In␈απthe␈απno␈α␈tation␈απof␈απF␈α↓ig.␈αλ6␈α␈,␈α sh␈α␈o␈α␈w␈αλth␈α␈at␈αλif␈↓ π␈ε q␈↓ π)␈εβ=␈ε↔␈α
b␈εβ(␈↓ πl␈ε u␈↓ λ␈ε b␈↓ λ≠␈εβ+␈↓ λ@␈ε u␈↓ λ←␈εβ)␈α↓/␈α␈(␈↓ ε␈ε v␈↓ $␈εβ+␈α∧1␈α␈)␈ε↔c␈εβ,␈α the␈α␈n␈↓
L␈ε q␈↓
j␈ε↔∀␈↓ ∀␈ε q␈↓ #␈εβ.
␈β⊂(␈↓ π␈␈εε0␈↓ λS␈εε1␈↓ ∃␈εε1
␈β⊂K␈↓ ↓;␈ε↓x
␈β⊂O␈↓ ↓V␈ε∪19.␈↓ α␈εβ[␈ε M21␈↓ αX␈εβ]␈α⊗In␈α∂t␈α␈he␈α∂n␈α␈otatio␈α␈n␈α∂of␈α∂Fig.␈α∂6,␈α⊂l␈α↓e␈α␈t␈↓ ε;␈εβ∂␈↓ ε;␈ε q␈↓ εY␈εβbe␈α∂a␈α␈n␈α∂ap␈α␈pro␈α}xima␈α␈ti␈α↓o␈α␈n␈α∂to␈↓ L␈ε q␈↓ Z␈εβ,␈α⊃a␈α␈nd␈α∂let␈↓
l␈εβ∂␈↓
m␈ε r␈↓ ␈εβ=
␈β⊂w␈↓ ↓H␈ε u␈↓ ↓g␈ε b␈↓ ↓|␈εβ+␈↓ α&␈ε u␈↓ αM␈ε↔␈␈↓ αu␈εβ∂␈↓ αv␈ε q␈↓ β¬␈ε v␈↓ β ␈εβ.␈α∞Assu␈α␈me␈αth␈α␈at␈↓ ∧z␈ε v␈↓ ¬ ␈εβ>␈α0␈α␈.␈α∞S␈α␈ho␈α␈w␈αtha␈α␈t␈αif␈↓ π4␈ε v␈↓ πO␈εβ∂␈↓ πP␈ε q␈↓ πi␈εβ>␈↓ λ∀␈ε b␈↓ λ!␈εβ∂␈↓ λ"␈ε r␈↓ λ8␈εβ+␈↓ λa␈ε u␈↓ ↓␈εβ,␈αthe␈α␈n␈↓ c␈ε q␈↓ |␈εβ<␈↓
'␈εβ∂␈↓
(␈ε q␈↓
6␈εβ.␈α≠[␈ε⊂Hi␈α↓n␈α}t:
␈β⊃↓␈↓ ↓[␈εε0␈↓ α9␈εε1␈↓ β∀␈εε1␈↓ ¬ ␈εε1␈↓ πC␈εε2␈↓ λt␈εε2
␈β⊃≡␈↓ ↓H␈εβS␈α␈tren␈α␈gth␈α␈en␈αth␈α␈e␈αpro␈α␈of␈αof␈αThe␈α␈orem␈αA␈αb␈α␈y␈αex␈α␈amin␈α␈i␈α↓n␈α␈g␈αth␈α␈e␈αin⎇␈α␈uen␈α␈ce␈αof␈↓ ∃␈ε v␈↓ 0␈εβ.]
␈β⊃)␈↓ #␈εε2
␈β∪(
␈β↓Y␈↓ ↓H␈εα264␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.1
␈βα*␈↓ ↓V␈ε∪20.␈↓ α␈εβ[␈ε M22␈↓ αX␈εβ]␈α⊗Using␈α¬th␈α␈e␈αεno␈α␈tation␈α¬an␈α␈d␈α¬assum␈α␈ption␈α␈s␈αεof␈α¬ex␈α␈erc␈α␈i␈α↓se␈α¬19,␈απsh␈α␈o␈α␈w␈αεth␈α␈at␈αεif␈↓ h␈ε v␈↓
α␈εβ∂␈↓
β␈ε q␈↓
≠␈ε↔∀␈↓
F␈ε b␈↓
R␈εβ∂␈↓
S␈ε r␈↓
b␈εβ+␈↓ β␈ε u␈↓ #␈εβ,
␈βα5␈↓ v␈εε2␈↓ ↔␈εε2
␈βαR␈↓ ↓H␈εβth␈α␈en␈↓ α∪␈εβ∂␈↓ α∪␈ε q␈↓ α,␈εβ=␈↓ αV␈ε q␈↓ αp␈εβor␈↓ β→␈ε q␈↓ β1␈εβ=␈↓ βZ␈εβ∂␈↓ β[␈ε q␈↓ βq␈ε↔␈␈εβ␈αλ1.
␈ββπ␈↓ ↓;␈ε↓x
␈ββ␈↓ ↓V␈ε∪21.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈α
tha␈α␈t␈αif␈↓ ∧5␈ε v␈↓ ∧Z␈ε↔∃␈α b␈↓ ¬⊃␈ε b␈↓ ¬≡␈εβ/2␈ε↔c␈εβ,␈αa␈α␈nd␈α
if␈↓ ε@␈ε v␈↓ ε[␈εβ∂␈↓ ε\␈ε q␈↓ εt␈ε↔∀␈↓ π≡␈ε b␈↓ π*␈εβ∂␈↓ π+␈ε r␈↓ πA␈εβ+␈↓ πi␈ε u␈↓ λ∀␈εβb␈α␈ut␈↓ λO␈εβ∂␈↓ λP␈ε q␈↓ λh␈ε↔≤␈↓ ∪␈ε q␈↓ ,␈εβi␈α↓n␈α
th␈α␈e␈αn␈α␈otatio␈α␈n␈αo␈α␈f
␈ββ∃␈↓ ∧D␈εε1␈↓ εO␈εε2␈↓ π|␈εε2
␈ββ2␈↓ ↓H␈εβe␈α␈x␈α␈ercises␈αε19␈απa␈α␈nd␈αε20,␈αλth␈α␈en␈↓ ∧*␈ε u␈↓ ∧@␈ε↔␈␈↓ ∧d␈ε q␈↓ ∧r␈ε v␈↓ ¬
␈ε↔∃␈εβ␈α (␈α↓1␈ε↔␈α↓␈␈εβ␈αα3/␈↓ ε~␈ε b␈↓ ε'␈εβ)␈↓ ε2␈ε v␈↓ εC␈εβ.␈α
(The␈απlatt␈α␈er␈απev␈α␈e␈α␈n␈α␈t␈απoc␈α␈curs␈αεw␈α↓ith␈αεap␈α␈pro␈α␈x␈α␈imate
␈ββZ␈↓ ↓H␈εβp␈α␈rob␈α␈ab␈α␈i␈α↓lity␈α3␈α␈/␈↓ β∃␈ε b␈↓ β"␈εβ,␈αs␈α␈o␈αtha␈α␈t␈αwhen␈↓ ∧}␈ε b␈↓ ¬↔␈εβis␈αth␈α␈e␈αw␈α␈ord␈αsize␈α
of␈αa␈αco␈α␈mpu␈α␈ter␈αw␈α␈e␈αm␈α␈u␈α␈st␈αha␈α␈v␈α␈e␈↓
+␈ε q␈↓
L␈εβ=␈↓
v␈εβ∂␈↓
w␈ε q␈↓ ⊃␈εβin
␈ββe␈↓
7␈εj
␈β∧α␈↓ ↓H␈εβAlgo␈α␈rithm␈αD␈αex␈α}cep␈α␈t␈αi␈α↓n␈α
v␈α␈e␈α␈ry␈αrare␈α
ci␈α↓r␈α␈cums␈α␈tanc␈α␈es.)
␈β∧7␈↓ ↓;␈ε↓x
␈β∧;␈↓ ↓V␈ε∪22.␈↓ α␈εβ[␈ε 24␈↓ α;␈εβ]␈α⊗Fi␈α↓n␈α␈d␈α
an␈α
exa␈α␈mple␈α
of␈αa␈α
four-d␈α␈igit␈αn␈α␈u␈α␈m␈α␈b␈α␈er␈αd␈α␈i␈α↓v␈α␈ided␈α
by␈α
a␈α
three␈α␈-digit␈αn␈α}um␈α␈b␈α␈er␈αfo␈α␈r
␈β∧b␈↓ ↓H␈εβwh␈α␈ich␈αstep␈α
D6␈αis␈αne␈α␈cessar␈α␈y␈αin␈αAlgor␈α␈i␈α↓th␈α␈m␈αD␈↓ ε9␈εβ,␈αwhen␈α
the␈αra␈α␈bix␈↓ λ5␈ε b␈↓ λM␈εβis␈α10␈α␈.
␈β¬≠␈↓ ↓V␈ε∪23.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈α␈n␈αth␈α␈at␈↓ ∧"␈ε v␈↓ ∧?␈εβan␈α␈d␈↓ ¬↓␈ε b␈↓ ¬~␈εβa␈α␈re␈αin␈α␈teg␈α␈ers,␈αand␈αth␈α␈at␈α1␈ε↔␈α
∀␈↓ λ)␈ε v␈↓ λE␈εβ<␈↓ λq␈ε b␈↓ λ}␈εβ,␈α
p␈α␈ro␈α␈v␈α}e␈αtha␈α␈t␈ε↔␈αb␈↓
E␈ε b␈↓
R␈εβ/2␈ε↔c␈α
∀
␈β¬C␈↓ ↓H␈ε v␈↓ ↓Y␈ε↔b␈↓ ↓f␈ε b␈↓ ↓s␈εβ/(␈↓ α∂␈ε v␈↓ α(␈εβ+␈απ1)␈ε↔c␈εβ␈α <␈α
(␈↓ β8␈ε v␈↓ βQ␈εβ+␈απ1)␈ε↔b␈↓ ∧"␈ε b␈↓ ∧/␈εβ/(␈↓ ∧K␈ε v␈↓ ∧d␈εβ+␈αλ1␈α␈)␈ε↔c␈α
∀␈↓ ¬i␈ε b␈↓ ¬v␈εβ.
␈β¬|␈↓ ↓V␈ε∪24.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗Using␈απthe␈απl␈α↓a␈α␈w␈αλof␈αλth␈α␈e␈αλdistrib␈α␈ution␈απof␈αλlead␈α␈ing␈απdigits␈αλex␈α␈plain␈α␈ed␈αλin␈απSec␈α␈ti␈α↓o␈α␈n␈αλ4␈α␈.␈α↓2␈α␈.␈α↓4␈α␈,
␈βε#␈↓ ↓H␈εβg␈α␈i␈α↓v␈α}e␈α
an␈αap␈α␈pro␈α}ximat␈α␈e␈α
form␈α␈u␈α␈l␈α↓a␈αfor␈α
th␈α␈e␈α
pro␈α␈ba␈α␈bili␈α↓ty␈αtha␈α␈t␈↓ πh␈ε d␈↓ λπ␈εβ=␈α
1␈αi␈α↓n␈αAlgorith␈α␈m␈α
D.␈α
(W␈α↓h␈α␈en
␈βεK␈↓ ↓H␈ε d␈↓ ↓c␈εβ=␈α
1,␈αit␈αis,␈αo␈α␈f␈αc␈α␈our␈α␈se,␈αp␈α␈ossib␈α␈l␈α↓e␈αt␈α␈o␈αomit␈αmo␈α␈st␈αof␈αthe␈αc␈α␈alcula␈α␈ti␈α↓o␈α␈n␈αin␈αste␈α␈ps␈αD1␈αa␈α␈nd␈α
D8.)
␈βπ↓␈↓ βT␈ε∃MIX
␈βπ∧␈↓ ↓V␈ε∪25.␈↓ α␈εβ[␈ε 26␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≥␈εβrout␈α␈i␈α↓n␈α␈e␈αfor␈αstep␈α
D1,␈αwhich␈α
i␈α↓s␈αn␈α␈eed␈α␈ed␈αto␈α
comp␈α␈lete␈αProgr␈α␈am␈αD.
␈βπ:␈↓ βT␈ε∃MIX
␈βπ=␈↓ ↓V␈ε∪26.␈↓ α␈εβ[␈ε 21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≥␈εβrout␈α␈i␈α↓n␈α␈e␈αfor␈αstep␈α
D8,␈αwhich␈α
i␈α↓s␈αn␈α␈eed␈α␈ed␈αto␈α
comp␈α␈lete␈αProgr␈α␈am␈αD.
␈βπv␈↓ ↓V␈ε∪27.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αt␈α␈hat␈αat␈αth␈α␈e␈αbeg␈α␈i␈α↓n␈α␈nin␈α␈g␈αof␈αstep␈αD8␈αin␈αAlgor␈α␈i␈α↓th␈α␈m␈αD␈↓ ~␈εβ,␈αth␈α␈e␈αun␈α␈no␈α␈rmalized
␈βλ≡␈↓ ↓H␈εβre␈α␈maind␈α␈er␈α(␈↓ αp␈ε u␈↓ β@␈ε u␈↓ ∧⊗␈εβ.␈αε.␈αε.␈↓ ∧B␈ε u␈↓ ¬⊗␈εβ)␈↓ ¬8␈εβis␈αalwa␈α␈ys␈αan␈α
exa␈α␈ct␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓e␈α
of␈↓ λv␈ε d␈↓ ␈εβ.
␈βλ(␈↓ ββ␈εm␈↓ β~␈εε+␈α↓1␈↓ βS␈εm␈↓ βk␈εε+2␈↓ ∧V␈εm␈↓ ∧m␈εε+␈↓ ¬ε␈εn␈↓ ¬!␈εb
␈βλW␈↓ ↓V␈ε∪28.␈↓ α␈εβ[␈ε M30␈↓ αX␈εβ]␈α⊗(A.␈α
Sv␈α}ob␈α␈oda␈α␈,␈ε⊂␈α∞S␈α␈troje␈α
n␈α␈a␈α
Zprac␈α␈o␈α␈v␈↓ εL␈ε⊂∞␈↓ εL␈ε⊂a␈↓ ε\␈ε⊂n␈↓ εk␈ε⊂∞␈↓ εo␈ε⊂␈↓ π¬␈ε⊂Info␈α␈rmac␈↓ λβ␈ε⊂∞␈↓ λε␈ε⊂␈↓ λ≥␈ε∪9␈εβ␈α(196␈α␈3),␈α∞25␈α␈↑3␈α␈2.)␈α≥L␈α↓e␈α␈t␈↓
m␈ε v␈↓ ␈εβ=
␈βλ}␈↓ ↓H␈εβ(␈↓ ↓S␈ε v␈↓ ↓n␈ε v␈↓ α∂␈εβ.␈αε.␈α¬.␈↓ α;␈ε v␈↓ αZ␈εβ)␈↓ α|␈εβb␈α␈e␈αan␈α}y␈αra␈α␈dix␈↓ ∧?␈ε b␈↓ ∧W␈εβin␈α␈teg␈α␈er,␈αwhere␈↓ ε/␈ε v␈↓ εS␈ε↔≤␈εβ␈α
0␈α␈.␈αPerfor␈α␈m␈αthe␈αfo␈α␈l␈α↓lo␈α␈win␈α␈g␈αop␈α␈eration␈α␈s:
␈β ␈↓ ↓a␈εε1␈↓ ↓⎇␈εε2␈↓ αJ␈εn␈↓ αe␈εb␈↓ ε=␈εε1
␈β 7␈↓ ↓M␈ε∪N1.␈↓ α␈εβIf␈↓ α2␈ε v␈↓ α←␈εβ<␈↓ β∩␈ε b␈↓ β∨␈εβ/2␈α␈,␈α∩m␈α}ultiply␈↓ ∧f␈ε v␈↓ ¬π␈εβb␈α␈y␈ε↔␈α⊂b␈εβ(␈↓ ¬T␈ε b␈↓ ¬l␈εβ+␈α1)/␈α␈(␈↓ εO␈ε v␈↓ εu␈εβ+␈α1)␈ε↔c␈εβ.␈α~Let␈α⊂th␈α␈e␈α⊂resu␈α␈l␈α↓t␈α⊂o␈α␈f␈α⊂this␈α⊂step␈α∂be
␈β B␈↓ αA␈εε1␈↓ ε↑␈εε1
␈β ←␈↓ α␈εβ(␈↓ α↔␈ε v␈↓ α2␈ε v␈↓ αN␈ε v␈↓ αo␈εβ.␈α¬.␈αε.␈↓ β≠␈ε v␈↓ β:␈εβ)␈↓ βP␈εβ.
␈β j␈↓ α&␈εε0␈↓ αA␈εε1␈↓ α\␈εε2␈↓ β*␈εn␈↓ βE␈εb
␈β
_␈↓ ↓M␈ε∪N2.␈↓ α␈εβIf␈↓ α0␈ε v␈↓ αY␈εβ=␈α∞0␈α␈,␈α∂set␈↓ βf␈ε v␈↓ ∧¬␈ε↔ ␈↓ ∧4␈ε v␈↓ ∧O␈εβ+␈α (1/␈↓ ¬&␈ε b␈↓ ¬3␈εβ)␈ε↔b␈↓ ¬K␈ε b␈↓ ¬X␈εβ(␈↓ ¬c␈ε b␈↓ ¬z␈ε↔␈␈↓ ε$␈ε v␈↓ ε?␈εβ)␈α↓/␈α␈(␈↓ εf␈ε v␈↓ π␈εβ+␈α 1)␈ε↔c␈↓ π↑␈ε v␈↓ πo␈εβ;␈α⊂let␈α
the␈α
resu␈α␈l␈α↓t␈α
of␈α∞th␈α␈i␈α↓s␈α
step␈α
be
␈β
#␈↓ α?␈εε0␈↓ ε3␈εε1␈↓ εu␈εε1
␈β
@␈↓ α␈εβ(␈↓ α↔␈ε v␈↓ α2␈ε v␈↓ αN␈ε v␈↓ αo␈εβ.␈α¬.␈αε.␈↓ β≠␈ε v␈↓ β:␈εβ.␈↓ βC␈ε v␈↓ ∧∞␈εβ.␈α¬.␈αε.␈↓ ∧:␈εβ)␈↓ ∧P␈εβ.␈αRepea␈α␈t␈αstep␈αN␈α␈2␈αun␈α}til␈↓ π!␈ε v␈↓ πE␈ε↔≤␈εβ␈α
0.
␈β
J␈↓ α&␈εε0␈↓ αA␈εε1␈↓ α\␈εε2␈↓ β*␈εn␈↓ βR␈εn␈↓ βb␈εε+1␈↓ ∧E␈εb␈↓ π0␈εε0
␈β
y␈↓ ↓H␈εβPro␈α␈v␈α}e␈α
th␈α␈at␈α
ste␈α␈p␈α
N2␈αwil␈α↓l␈α
b␈α␈e␈α
p␈α␈erforme␈α␈d␈α
a␈α␈t␈α
mos␈α␈t␈α
thre␈α␈e␈α
times,␈α
an␈α␈d␈α
th␈α␈at␈α
w␈α␈e␈αm␈α␈ust␈αalway␈α␈s
␈β ␈↓ ↓H␈εβh␈α␈av␈α}e␈↓ α⊗␈ε v␈↓ α;␈εβ=␈α 1,␈↓ β
␈ε v␈↓ β/␈εβ=␈α 0␈αat␈αth␈α␈e␈αend␈α
of␈αth␈α␈e␈αcalcu␈α␈l␈α↓a␈α␈tions.
␈β+␈↓ α%␈εε0␈↓ β→␈εε1
␈βJ␈↓ α␈εβ[␈ε⊂Note:␈εβ␈α∞If␈↓ β⊗␈ε u␈↓ β7␈εβa␈α␈nd␈↓ βy␈ε v␈↓ ∧↔␈εβa␈α␈re␈α
b␈α␈oth␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓ied␈αb␈α␈y␈αthe␈αab␈α␈o␈α␈v␈α␈e␈αcon␈α␈stan␈α}ts,␈α
we␈αdo␈αn␈α␈ot␈α
c␈α␈ha␈α␈nge
␈βq␈↓ ↓H␈εβth␈α␈e␈α⊃valu␈α␈e␈α∩o␈α␈f␈α∩the␈α⊃qu␈α␈otien␈α}t␈↓ ∧]␈ε u␈↓ ∧q␈εβ/␈↓ ¬α␈ε v␈↓ ¬∪␈εβ,␈α∪and␈α⊃th␈α␈e␈α⊃divisor␈α⊃ha␈α␈s␈α∩b␈α␈een␈α⊃co␈α␈n␈α␈v␈α␈e␈α␈rted␈α⊃in␈α␈to␈α⊃the␈α⊃form
␈β→␈↓ ↓H␈εβ(1␈α␈0␈↓ ↓t␈ε v␈↓ α∃␈εβ.␈αε.␈α¬.␈↓ αA␈ε v␈↓ α`␈εβ.␈↓ αj␈ε v␈↓ β.␈ε v␈↓ βs␈ε v␈↓ ∧8␈εβ)␈↓ ∧N␈εβ.␈αThis␈α
form␈α
o␈α␈f␈αth␈α␈e␈α
div␈α␈i␈α↓so␈α␈r␈α
i␈α↓s␈α
v␈α}ery␈α
co␈α␈n␈α␈v␈α␈e␈α␈nien␈α}t␈αb␈α␈eca␈α␈use,␈α
in␈α
the
␈β#␈↓ αβ␈εε2␈↓ αP␈εn␈↓ αx␈εn␈↓ β ␈εε+1␈↓ β=␈εn␈↓ βM␈εε+␈α↓2␈↓ ∧α␈εn␈↓ ∧∩␈εε+3␈↓ ∧C␈εb
␈β@␈↓ ↓H␈εβn␈α␈ota␈α␈ti␈α↓o␈α␈n␈α of␈α Al␈α↓g␈α␈orithm␈α D␈↓ ∧(␈εβ,␈α
w␈α␈e␈α ma␈α␈y␈α simply␈α ta␈α␈k␈α␈e␈↓ εb␈εβ∂␈↓ εc␈ε q␈↓ ε{␈εβ=␈↓ π&␈ε u␈↓ πN␈εβas␈α a␈α trial␈α
d␈α␈i␈α↓v␈α␈isor␈α at␈α the␈α b␈α␈eginn␈α␈ing
␈βK␈↓ π9␈εj
␈βh␈↓ ↓H␈εβo␈α␈f␈αstep␈αD3␈α␈,␈αo␈α␈r␈↓ β≠␈εβ∂␈↓ β≤␈ε q␈↓ β4␈εβ=␈↓ β←␈ε b␈↓ βt␈ε↔␈␈εβ␈απ1␈αwhe␈α␈n␈α(␈↓ ¬~␈ε u␈↓ ¬←␈εβ,␈↓ ¬n␈ε u␈↓ ε
␈εβ)␈α =␈α
(1,␈α¬0).]
␈βs␈↓ ¬-␈εj␈↓ ¬9␈ε~␈␈εε1␈↓ ε↓␈εj
␈β
!␈↓ ↓V␈ε∪29.␈↓ α␈εβ[␈ε 15␈↓ α;␈εβ]␈α⊗Pro␈α␈v␈α␈e␈αor␈αdispr␈α␈o␈α␈v␈α␈e:␈α∞At␈α
t␈α␈he␈αbeg␈α␈i␈α↓n␈α␈nin␈α␈g␈α
o␈α␈f␈α
step␈αD7␈αo␈α␈f␈α
Algorith␈α␈m␈α
D␈↓
α␈εβ,␈α
w␈α␈e␈αalway␈α␈s
␈β
I␈↓ ↓H␈εβh␈α␈av␈α}e␈↓ α⊗␈ε u␈↓ α?␈εβ=␈α 0.
␈β
S␈↓ α)␈εj
␈β
}␈↓ ↓;␈ε↓x
␈β∞α␈↓ ↓V␈ε∪30.␈↓ α␈εβ[␈ε 22␈↓ α;␈εβ]␈α⊗If␈αm␈α␈emo␈α␈ry␈α
spa␈α␈ce␈α
is␈α
l␈α↓imited␈α␈,␈αit␈α
ma␈α␈y␈α
be␈α
d␈α␈esirab␈α␈le␈α
to␈α
use␈α
t␈α␈he␈α
sam␈α␈e␈α
stora␈α␈ge␈α
loca␈α␈-
␈β∞)␈↓ ↓H␈εβtio␈α␈ns␈αfor␈αbo␈α␈th␈αinp␈α␈ut␈αa␈α␈nd␈αo␈α␈utp␈α␈ut␈αd␈α␈urin␈α␈g␈αthe␈αp␈α␈erform␈α␈anc␈α␈e␈αof␈αsome␈αo␈α␈f␈α
t␈α␈he␈αalgo␈α␈rithms␈αin
␈β∞Q␈↓ ↓H␈εβth␈α␈is␈α
sec␈α␈ti␈α↓o␈α␈n.␈α∂I␈α↓s␈αit␈α
p␈α␈ossible␈αto␈αha␈α␈v␈α␈e␈↓ ¬E␈ε w␈↓ ¬h␈εβ,␈↓ ¬}␈εβ.␈αε.␈αε.␈↓ ε+␈εβ,␈↓ εA␈ε w␈↓ εt␈εβsto␈α␈red␈αin␈αthe␈αsame␈αresp␈α␈ectiv␈α}e␈α
loc␈α␈ation␈α␈s
␈β∞[␈↓ ¬[␈εε1␈↓ εW␈εn
␈β∞x␈↓ ↓H␈εβa␈α␈s␈↓ ↓s␈ε u␈↓ α∪␈εβ,␈↓ α+␈εβ.␈α¬.␈αε.␈↓ αW␈εβ,␈↓ αo␈ε u␈↓ β ␈εβor␈↓ βK␈ε v␈↓ βg␈εβ,␈↓ β}␈εβ.␈αε.␈αε.␈↓ ∧+␈εβ,␈↓ ∧B␈ε v␈↓ ∧o␈εβdu␈α␈ring␈α
Al␈α↓g␈α␈orithm␈α
A␈α∞or␈α
S␈↓ πa␈εβ?␈α∪Is␈α∞it␈α∞po␈α␈ssible␈α∞to␈α
ha␈α␈v␈α␈e␈↓
F␈ε q␈↓
←␈εβ,␈↓
w␈εβ.␈αε.␈α¬.␈↓ #␈εβ,
␈β∂β␈↓ αε␈εε1␈↓ βα␈εn␈↓ βZ␈εε1␈↓ ∧Q␈εn␈↓
R␈εε0
␈β∂ ␈↓ ↓H␈ε q␈↓ ↓w␈εβo␈α␈ccu␈α␈py␈αthe␈αsam␈α␈e␈αloca␈α␈tions␈αas␈↓ ¬*␈ε u␈↓ ¬J␈εβ,␈↓ ¬←␈εβ.␈αε.␈αε.␈↓ ε␈εβ,␈↓ ε!␈ε u␈↓ εW␈εβin␈αAl␈α↓g␈α␈orithm␈αD␈↓ λ8␈εβ?␈α
Is␈αthere␈αan␈α}y␈αperm␈α␈i␈α↓ssib␈α␈l␈α↓e
␈β∂+␈↓ ↓T␈εm␈↓ ¬>␈εε0␈↓ ε4␈εm
␈β∂H␈↓ ↓H␈εβo␈α}v␈α␈erlap␈α
of␈αmem␈α␈ory␈αlo␈α␈cation␈α␈s␈αbet␈α␈w␈α␈ee␈α␈n␈αinp␈α␈ut␈αa␈α␈nd␈α
outp␈α␈ut␈αin␈α
A␈α↓lg␈α␈orithm␈αM␈α␈?
␈β⊂↓␈↓ ↓V␈ε∪31.␈↓ α␈εβ[␈ε 28␈↓ α;␈εβ]␈α⊗Assum␈α␈e␈αtha␈α␈t␈↓ ∧≤␈ε b␈↓ ∧3␈εβ=␈α 3␈αa␈α␈nd␈α
that␈↓ ε↓␈ε u␈↓ ε∨␈εβ=␈α (␈↓ εT␈ε u␈↓ εz␈εβ.␈α¬.␈αε.␈↓ π&␈ε u␈↓ πz␈εβ)␈↓ λ∩␈εβ,␈↓ λ&␈ε v␈↓ λA␈εβ=␈α (␈↓ λv␈ε v␈↓ ↔␈εβ.␈αε.␈αε.␈↓ C␈ε v␈↓ b␈εβ)␈↓
¬␈εβare␈αin␈α}teger␈α␈s
␈β⊂␈↓ εh␈εε1␈↓ π9␈εm␈↓ πP␈εε+␈↓ πj␈εn␈↓ λ¬␈εε3␈↓ ¬␈εε1␈↓ R␈εn␈↓ n␈εε3
␈β⊂(␈↓ ↓H␈εβin␈ε⊂␈α ba␈α␈l␈α↓a␈α␈nc␈α␈ed␈α terna␈α␈ry␈εβ␈α nota␈α␈tion␈α (cf.␈α
Sec␈α␈ti␈α↓o␈α␈n␈α 4.1),␈↓ εc␈ε v␈↓ πλ␈ε↔≤␈εβ␈α 0.␈αDesign␈α a␈α long␈α␈-division␈α a␈α␈l␈α↓g␈α␈orithm
␈β⊂3␈↓ εr␈εε1
␈β⊂L␈↓
o␈εε1
␈β⊂P␈↓ ↓H␈εβth␈α␈at␈α
divid␈α␈es␈↓ β␈ε u␈↓ β∨␈εβb␈α␈y␈↓ βN␈ε v␈↓ β`␈εβ,␈αo␈α␈btain␈α␈i␈α↓n␈α␈g␈α
a␈αrem␈α␈aind␈α␈er␈αwh␈α␈ose␈α
abso␈α␈lute␈α
valu␈α␈e␈αd␈α␈oes␈α
not␈α
ex␈α␈c␈α␈eed␈↓
␈␈ε↔j␈↓ ␈ε v␈↓ ~␈ε↔j␈εβ.
␈β⊂↑␈↓
o␈∧⊂↑
oα
␈β⊂`␈↓
o␈εε2
␈β⊂w␈↓ ↓H␈εβTry␈α∞to␈α∞|␈α␈nd␈α∞a␈α␈n␈α∞algo␈α␈ri␈α↓th␈α␈m␈α∞tha␈α␈t␈α∂w␈α␈ou␈α␈ld␈α∞be␈α∞e}c␈α␈i␈α↓en␈α}t␈α∂if␈α∞i␈α↓n␈α␈corp␈α␈ora␈α␈ted␈α∞in␈α␈to␈α∞th␈α␈e␈α∂a␈α␈rithme␈α␈ti␈α↓c
␈β⊃∨␈↓ ↓H␈εβc␈α␈i␈α↓rc␈α␈uitry␈αo␈α␈f␈αa␈α
ba␈α␈l␈α↓a␈α␈nce␈α␈d␈αtern␈α␈ary␈α
comp␈α␈ute␈α␈r.
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α ARIT␈α␈HMET␈α␈IC␈↓
v␈εα265
␈βα*␈↓ ↓V␈ε∪32.␈↓ α␈εβ[␈ε M40␈↓ αX␈εβ]␈α⊗Assu␈α␈me␈αtha␈α␈t␈↓ ∧<␈ε b␈↓ ∧T␈εβ=␈α2␈↓ ¬⊃␈ε i␈↓ ¬*␈εβand␈αthat␈↓ ε6␈ε u␈↓ εV␈εβan␈α␈d␈↓ π_␈ε v␈↓ π6␈εβar␈α␈e␈α
c␈α␈omp␈α␈l␈α↓e␈α␈x␈αn␈α␈u␈α␈m␈α␈be␈α␈rs␈α
e␈α␈xp␈α␈ressed␈αin
␈βαR␈↓ ↓H␈εβth␈α␈e␈αqua␈α␈ter-imag␈α␈i␈α↓n␈α␈ary␈αn␈α}um␈α␈b␈α␈er␈αsyste␈α␈m.␈α⊂De␈α␈si␈α↓g␈α␈n␈αalgo␈α␈ri␈α↓th␈α␈ms␈αtha␈α␈t␈α
d␈α␈i␈α↓v␈α␈ide␈↓ B␈ε u␈↓ c␈εβb␈α␈y␈↓
∀␈ε v␈↓
&␈εβ,␈α
p␈α␈erh␈α␈ap␈α␈s
␈βαy␈↓ ↓H␈εβo␈α␈bta␈α␈i␈α↓n␈α␈ing␈α a␈α suita␈α␈ble␈α remain␈α␈der␈α of␈α some␈α sor␈α␈t,␈α
and␈α c␈α␈omp␈α␈are␈α the␈α␈i␈α↓r␈α e}c␈α␈i␈α↓e␈α␈ncy␈α␈.␈α∃[␈ε⊂␈α↓Re␈α␈f␈α↓e␈α␈renc␈α␈es:
␈ββ!␈↓ ↓H␈εβM␈α␈.␈α∂Na␈α␈dler,␈ε⊂␈α∂CAC␈α␈M␈ε∪␈α∞4␈εβ␈α∂(1␈α␈961␈α␈),␈α⊂19␈α␈2↑␈α␈193␈α␈;␈α⊃Z.␈α∂Pawlak␈α∞a␈α␈nd␈α∞A.␈α∂Wa␈α␈ku␈α␈l␈α↓icz,␈ε⊂␈α∂Bull.␈α∂d␈α␈e␈α∂l'Acad␈α␈.
␈ββI␈↓ ↓H␈ε⊂Polon␈α␈aise␈α d␈α␈es␈α S␈α␈cience␈α␈s␈εβ,␈α
Classe␈αλI␈α↓II,␈ε∪␈α 5␈εβ␈α (1␈α␈957␈α␈),␈α
23␈α␈3↑2␈α␈36␈α (se␈α␈e␈α also␈α p␈α␈p.␈α
803␈α␈↑80␈α␈4);␈α
an␈α␈d␈α e␈α␈x␈α␈erc␈α␈i␈α↓se
␈ββp␈↓ ↓H␈εβ4␈α␈.␈α↓1␈α␈↑1␈α␈5.]
␈β∧"␈↓ ↓V␈ε∪33.␈↓ α␈εβ[␈ε M40␈↓ αX␈εβ]␈α⊗Des␈α␈i␈α↓g␈α␈n␈α a␈α␈n␈α a␈α␈lgorith␈α␈m␈α for␈αλtakin␈α␈g␈α sq␈α␈uar␈α␈e␈α roo␈α␈ts,␈α
a␈α␈na␈α␈l␈α↓o␈α␈gou␈α␈s␈α to␈αλAl␈α↓g␈α␈orithm␈αλD␈α a␈α␈nd
␈β∧J␈↓ ↓H␈εβto␈α
the␈αtra␈α␈dition␈α␈al␈αpen␈α␈cil-␈α↓a␈α␈nd␈α␈-pa␈α␈per␈αme␈α␈tho␈α␈d␈αfor␈αex␈α␈trac␈α␈ti␈α↓n␈α␈g␈αsqu␈α␈are␈αr␈α␈oots.
␈β∧{␈↓ ↓V␈ε∪34.␈↓ α␈εβ[␈ε 40␈↓ α;␈εβ]␈α⊗Dev␈α}elop␈αa␈αse␈α␈t␈α
o␈α␈f␈αcomp␈α␈ute␈α␈r␈α
su␈α␈br␈α␈outin␈α␈es␈αfor␈αdo␈α␈i␈α↓n␈α␈g␈αth␈α␈e␈αfour␈αa␈α␈ri␈α↓th␈α␈metic␈αo␈α␈pera␈α␈-
␈β¬#␈↓ ↓H␈εβtio␈α␈ns␈αon␈α
arb␈α␈itrary␈α
i␈α↓n␈α}tege␈α␈rs,␈αp␈α␈uttin␈α␈g␈αn␈α␈o␈αco␈α␈nstra␈α␈i␈α↓n␈α}t␈αon␈α
the␈αsize␈α
of␈αthe␈α
i␈α↓n␈α}tege␈α␈rs␈αex␈α␈ce␈α␈pt␈αfo␈α␈r
␈β¬K␈↓ ↓H␈εβth␈α␈e␈α
imp␈α␈li␈α↓cit␈α
a␈α␈ssum␈α␈ption␈α tha␈α␈t␈α
th␈α␈e␈α
tota␈α␈l␈α
memo␈α␈ry␈α
c␈α␈apa␈α␈city␈α
o␈α␈f␈α
the␈α com␈α␈pu␈α␈ter␈α
sh␈α␈ould␈α no␈α␈t␈α
be
␈β¬r␈↓ ↓H␈εβe␈α␈x␈α␈cee␈α␈ded␈α␈.␈α(␈α↓Use␈α
li␈α↓n␈α␈k␈α␈ed␈α
me␈α␈mory␈α
alloca␈α␈ti␈α↓o␈α␈n,␈αso␈α
tha␈α␈t␈αno␈α
time␈αis␈αwaste␈α␈d␈αin␈α
|n␈α␈ding␈α
roo␈α␈m␈αto
␈βε~␈↓ ↓H␈εβp␈α␈ut␈αth␈α␈e␈αresu␈α␈lts.␈α↓)
␈βεL␈↓ ↓V␈ε∪35.␈↓ α␈εβ[␈ε 40␈↓ α;␈εβ]␈α⊗Dev␈α}elop␈α
a␈α
set␈α
of␈α
comp␈α␈ut␈α␈er␈αsu␈α␈bro␈α␈utin␈α␈es␈αfo␈α␈r␈α\␈α␈dec␈α␈up␈α␈l␈α↓e␈α␈-␈α↓p␈α␈recision␈α
⎇␈α␈oa␈α␈ti␈α↓n␈α␈g-p␈α␈oin␈α␈t"
␈βεs␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α␈,␈αλusin␈α␈g␈αεex␈α␈c␈α␈ess␈απ0␈α␈,␈αλb␈α␈ase␈↓ ¬¬␈ε b␈↓ ¬∩␈εβ,␈αλn␈α␈i␈α↓n␈α␈e-pla␈α␈ce␈αε⎇oa␈α␈ting-p␈α␈oin␈α␈t␈αεn␈α␈u␈α␈m␈α␈b␈α␈er␈αεrepre␈α␈sen␈α␈ta␈α␈ti␈α↓o␈α␈n,␈απwhere
␈βπ≠␈↓ ↓H␈ε b␈↓ ↓c␈εβis␈α∞th␈α␈e␈α∞com␈α␈pu␈α␈ter␈α∞w␈α␈ord␈α
size,␈α∂an␈α␈d␈α
all␈α↓o␈α}wi␈α↓n␈α␈g␈α∞a␈α
full␈α∞wo␈α␈rd␈α∞fo␈α␈r␈α∞the␈α
exp␈α␈on␈α␈en␈α␈t.␈α∀(Th␈α}us␈α∞e␈α␈ach
␈βπB␈↓ ↓H␈εβ⎇␈α␈oa␈α␈ti␈α↓n␈α␈g-p␈α␈oin␈α␈t␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈αis␈α
repre␈α␈sen␈α␈te␈α␈d␈α
i␈α↓n␈α 10␈α
w␈α␈ord␈α␈s␈αo␈α␈f␈αme␈α␈mory␈α␈,␈αan␈α␈d␈α
all␈αsc␈α␈aling␈α
is␈αd␈α␈on␈α␈e␈α
by
␈βπj␈↓ ↓H␈εβm␈α␈o␈α␈vin␈α␈g␈αfull␈αw␈α␈ords␈αin␈α␈stead␈α
of␈αby␈α
shifting␈α
w␈α↓ith␈α␈in␈αthe␈α
wo␈α␈rds.)
␈βλ≤␈↓ ↓V␈ε∪36.␈↓ α␈εβ[␈ε M42␈↓ αX␈εβ]␈α⊗Co␈α␈mpu␈α␈te␈α
the␈α
va␈α␈l␈α↓u␈α␈es␈α
of␈αth␈α␈e␈α
fun␈α␈dam␈α␈en␈α␈ta␈α␈l␈αcon␈α␈stan␈α}ts␈αlisted␈α
in␈α
App␈α␈en␈α␈dix␈α
B␈αto
␈βλC␈↓ ↓H␈εβm␈α}uch␈αhigh␈α␈er␈αp␈α␈recision␈αth␈α␈an␈αthe␈α4␈α␈0-pla␈α␈ce␈αva␈α␈lues␈αlisted␈αthere␈α␈.␈α≤[␈ε⊂Not␈α␈e:␈εβ␈α∞Th␈α␈e␈α|␈α␈rst␈α100␈α␈,000
␈βλk␈↓ ↓H␈εβd␈α␈igits␈αo␈α␈f␈αthe␈αd␈α␈ecimal␈αexp␈α␈an␈α␈si␈α↓o␈α␈n␈αof␈↓ ¬B␈ε →␈↓ ¬`␈εβw␈α␈er␈α␈e␈αp␈α␈ub␈α␈l␈α↓ish␈α␈ed␈αby␈αD.␈αSh␈α␈ank␈α␈s␈αa␈α␈nd␈αJ␈α␈.␈αW␈α↓.␈αW␈α↓re␈α␈nch␈α␈,
␈β ∪␈↓ ↓H␈εβJ␈α␈r.,␈αin␈ε⊂␈αM␈α␈ath␈α␈.␈αCo␈α␈mp.␈ε∪␈α16␈εβ␈α
(196␈α␈2),␈α76↑␈α␈99.]
␈β @␈↓ ↓;␈ε↓x
␈β D␈↓ ↓V␈ε∪37.␈↓ α␈εβ[␈ε 20␈↓ α;␈εβ]␈α⊗(E.␈αS␈α␈alam␈α␈i␈α↓n␈α␈.)␈α→Exp␈α␈lain␈αh␈α␈o␈α␈w␈αto␈α
av␈α}oid␈α
the␈αn␈α␈orm␈α␈ali␈α↓z␈α␈ation␈α
an␈α␈d␈αu␈α␈nn␈α␈orm␈α␈ali␈α↓z␈α␈ation
␈β l␈↓ ↓H␈εβste␈α␈ps␈απof␈απAl␈α↓g␈α␈orith␈α␈m␈αλD␈↓ βo␈εβ,␈α wh␈α␈en␈↓ ∧T␈ε d␈↓ ∧n␈εβis␈απa␈απpo␈α}we␈α␈r␈αλo␈α␈f␈αλ2␈απo␈α␈n␈απa␈απbin␈α␈ary␈απco␈α␈mpu␈α␈ter,␈αλwithou␈α␈t␈απcha␈α␈ng␈α␈i␈α↓n␈α␈g␈απthe
␈β
∀␈↓ ↓H␈εβse␈α␈que␈α␈nce␈α
o␈α␈f␈αtria␈α␈l␈αqu␈α␈otien␈α}t␈α
digits␈α
com␈α␈pu␈α␈ted␈α
b␈α␈y␈α
tha␈α␈t␈α
algorith␈α␈m.␈α(Ho␈α␈w␈α
can␈↓ Y␈εβ∂␈↓ Y␈ε q␈↓ r␈εβbe␈α
co␈α␈mpu␈α␈ted
␈β
;␈↓ ↓H␈εβin␈α
step␈αD3␈α
i␈α↓f␈αth␈α␈e␈αno␈α␈rmalization␈α
of␈αstep␈α
D1␈αh␈α␈asn't␈αb␈α␈een␈αd␈α␈on␈α␈e?)
␈β3␈↓ ↓4␈ε≥*␈↓ ↓H␈ε≥4␈α␈.2.2.␈α
Modular␈α
Ar␈α␈it␈α↓hmetic
␈βs␈↓ ↓H␈εαAnother␈αin␈α␈teresting␈αalternativ␈α␈e␈αis␈αavailable␈αfor␈αdoing␈αarithmetic␈αon␈αlarge␈αin␈α␈teger
␈β∨␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αbased␈αon␈α
some␈αsimple␈αprinciples␈αof␈αn␈α␈um␈α␈ber␈αtheory.␈αThe␈αidea␈αis␈αto␈α
hav␈α␈e
␈βJ␈↓ ↓H␈εαsev␈α␈eral␈α\moduli"␈↓ β[␈ελm␈↓ ∧λ␈εα,␈↓ ∧≡␈ελm␈↓ ∧K␈εα,␈↓ ∧a␈εα.␈αε.␈αε.␈↓ ¬⊃␈εα,␈↓ ¬'␈ελm␈↓ ¬↑␈εαthat␈αcon␈α␈tain␈αno␈αcommon␈αfactors,␈αand␈αto␈αw␈α␈ork
␈βW␈↓ βy␈ε¬1␈↓ ∧<␈ε¬2␈↓ ¬E␈εr
␈βu␈↓ ↓H␈εαindirectly␈α
with␈α
\residues"␈↓ ∧c␈ελu␈↓ ∧}␈εαmod␈↓ ¬H␈ελm␈↓ ¬u␈εα,␈↓ ε
␈ελu␈↓ ε&␈εαmod␈↓ εp␈ελm␈↓ π≥␈εα,␈↓ π1␈εα.␈αε.␈αε.␈↓ πa␈εα,␈↓ πv␈ελu␈↓ λ∩␈εαmod␈↓ λ\␈ελm␈↓ ∩␈εαinstead␈α
of␈α
directly
␈β
α␈↓ ¬g␈ε¬1␈↓ π∞␈ε¬2␈↓ λz␈εr
␈β
␈↓ ↓H␈εαwith␈αthe␈αn␈α␈um␈α␈ber␈↓ βZ␈ελu␈↓ βo␈εα.
␈β
K␈↓ α␈εαFor␈αcon␈α␈v␈α␈enience␈αin␈αnotation␈αthroughout␈αthis␈αsection,␈αlet
␈β∞≥␈↓ α6␈ελu␈↓ αc␈εα=␈↓ β⊃␈ελu␈↓ β,␈εαmod␈↓ βv␈ελm␈↓ ∧#␈εα,␈↓ ∧{␈ελu␈↓ ¬(␈εα=␈↓ ¬V␈ελu␈↓ ¬r␈εαmod␈↓ ε<␈ελm␈↓ εi␈εα,␈↓ πA␈εα.␈αε.␈αε.␈↓ πq␈εα,␈↓ λI␈ελu␈↓ λu␈εα=␈↓ #␈ελu␈↓ >␈εαmod␈↓
λ␈ελm␈↓
4␈εα.␈↓ α␈εα(1)
␈β∞*␈↓ αJ␈ε¬1␈↓ ∧∃␈ε¬1␈↓ ¬⊂␈ε¬2␈↓ ε[␈ε¬2␈↓ λ]␈εr␈↓
'␈εr
␈β∞n␈↓ ↓H␈εαIt␈α
is␈αeasy␈α
to␈α
compute␈α(␈↓ ∧$␈ελu␈↓ ∧G␈εα,␈↓ ∧W␈ελu␈↓ ∧z␈εα,␈↓ ¬
␈εα.␈αε.␈αε.␈↓ ¬:␈εα,␈↓ ¬J␈ελu␈↓ ¬l␈εα)␈α
from␈αan␈α
in␈α␈teger␈αn␈α␈um␈α␈ber␈↓ λ⎇␈ελu␈↓ ≥␈εαby␈αmeans␈α
of␈α
divi-
␈β∞{␈↓ ∧8␈ε¬1␈↓ ∧k␈ε¬2␈↓ ¬↑␈εr
␈β∂→␈↓ ↓H␈εαsion;␈αand←more␈αimportan␈α␈t←no␈αinformation␈αis␈αlost␈αin␈αthis␈αprocess,␈αsince␈αw␈α␈e␈αcan
␈β∂D␈↓ ↓H␈εαrecompute␈↓ αw␈ελu␈↓ β_␈εαfrom␈α(␈↓ βy␈ελu␈↓ ∧≤␈εα,␈↓ ∧,␈ελu␈↓ ∧O␈εα,␈↓ ∧←␈εα.␈αε.␈αε.␈↓ ¬∂␈εα,␈↓ ¬∨␈ελu␈↓ ¬A␈εα)␈αpro␈α␈vided␈αthat␈↓ π:␈ελu␈↓ π[␈εαis␈αnot␈αtoo␈αlarge.␈αFor␈αexample,
␈β∂Q␈↓ ∧∞␈ε¬1␈↓ ∧A␈ε¬2␈↓ ¬4␈εr
␈β∂o␈↓ ↓H␈εαif␈α 0␈ε⊗␈α
∀␈↓ α1␈ελu␈↓ αQ␈εα<␈↓ α␈␈ελv␈↓ β≠␈ε⊗∀␈εα␈α
1000,␈α
it␈α is␈α
impossible␈α to␈α hav␈α␈e␈α (␈↓ π~␈ελu␈↓ π6␈εαmod␈↓ λ␈εα7,␈↓ λ"␈ελu␈↓ λ>␈εαmod␈↓ λ␈εα11,␈↓ <␈ελu␈↓ W␈εαmod␈↓
!␈εα13)␈α equal
␈β⊂~␈↓ ↓H␈εαto␈απ(␈↓ ↓{␈ελv␈↓ α∀␈εαmod␈↓ α↑␈εα7,␈↓ β␈ελv␈↓ β→␈εαmod␈↓ βc␈εα11,␈↓ ∧↔␈ελv␈↓ ∧0␈εαmod␈↓ ∧z␈εα13).␈α
This␈αλis␈αλa␈αλconsequence␈αλof␈αλthe␈αλ\Chinese␈απRemainder
␈β⊂F␈↓ ↓H␈εαTheorem"␈αstated␈αbelo␈α␈w.
␈β⊂q␈↓ α␈εαWe␈αmay␈αtherefore␈αregard␈α(␈↓ ¬,␈ελu␈↓ ¬N␈εα,␈↓ ¬↑␈ελu␈↓ ε↓␈εα,␈↓ ε⊃␈εα.␈αε.␈αε.␈↓ εA␈εα,␈↓ εQ␈ελu␈↓ εs␈εα)␈αas␈αa␈αnew␈αtype␈αof␈αin␈α␈ternal␈α
computer
␈β⊂}␈↓ ¬@␈ε¬1␈↓ ¬s␈ε¬2␈↓ εf␈εr
␈β⊃≤␈↓ ↓H␈εαrepresen␈α␈tation,␈αa␈α\modular␈αrepresen␈α␈tation,"␈αof␈αthe␈αin␈α␈teger␈↓ λa␈ελu␈↓ λv␈εα.
␈β∪(
␈β↓Y␈↓ ↓H␈εα266␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.2
␈βα(␈↓ α␈εαThe␈αadvan␈α␈tages␈αof␈αa␈αmodular␈αrepresen␈α␈tation␈αare␈αthat␈αaddition,␈αsubtraction,
␈βαS␈↓ ↓H␈εαand␈αm␈α␈ultiplication␈αare␈αv␈α␈ery␈αsimple:
␈ββ∧␈↓ ¬@␈ε↓␈␈↓
/␈ε↓↓
␈ββ$␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈αλ+␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈εα+␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈εα+␈↓
␈ελv␈↓ '␈εα)␈↓ 9␈εαmod␈↓
β␈ελm␈↓
=␈εα,␈↓ α␈εα(2)
␈ββ1␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ →␈εr␈↓
!␈εr
␈ββ:␈↓ ¬@␈ε↓␈␈↓
/␈ε↓↓
␈ββZ␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈ε⊗␈αλ␈␈εα␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈ε⊗␈␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈ε⊗␈␈↓
␈ελv␈↓ '␈εα)␈↓ 9␈εαmod␈↓
β␈ελm␈↓
=␈εα,␈↓ α␈εα(3)
␈ββg␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ →␈εr␈↓
!␈εr
␈ββp␈↓ ¬@␈ε↓␈␈↓
/␈ε↓↓
␈β∧⊂␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈ε⊗␈αλα␈εα␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈ε⊗α␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈ε⊗α␈↓
␈ελv␈↓ '␈εα)␈↓ 9␈εαmod␈↓
β␈ελm␈↓
=␈εα.␈↓ α␈εα(4)
␈β∧≥␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ →␈εr␈↓
!␈εr
␈β∧c␈↓ ↓H␈εαTo␈αderiv␈α␈e␈α(4),␈αfor␈αexample,␈αw␈α␈e␈αneed␈αto␈αsho␈α␈w␈αthat
␈β¬6␈↓ βf␈ελu␈↓ β|␈ελv␈↓ ∧∀␈εαmod␈↓ ∧↑␈ελm␈↓ ¬∀␈εα=␈α
(␈↓ ¬N␈ελu␈↓ ¬j␈εαmod␈↓ ε4␈ελm␈↓ ε`␈εα)(␈↓ εx␈ελv␈↓ π⊂␈εαmod␈↓ πZ␈ελm␈↓ λε␈εα)␈↓ λ_␈εαmod␈↓ λb␈ελm
␈β¬C␈↓ ∧⎇␈εj␈↓ εR␈εj␈↓ πy␈εj␈↓ ↓␈εj
␈βε ␈↓ ↓H␈εαfor␈α⊂each␈α⊃modulus␈↓ βo␈ελm␈↓ ∧≠␈εα.␈α~But␈α⊂this␈α⊃is␈α⊂a␈α⊃basic␈α⊂fact␈α⊃of␈α⊂elemen␈α␈tary␈α⊃n␈α␈um␈α␈ber␈α⊂theory:
␈βε⊗␈↓ ∧∞␈εj
␈βε/␈↓ %␈ε→0
␈βε4␈↓ ↓H␈ελx␈↓ ↓`␈εαmod␈↓ α*␈ελm␈↓ αb␈εα=␈↓ β∩␈ελy␈↓ β,␈εαmod␈↓ βv␈ελm␈↓ ∧/␈εαif␈α
and␈α
only␈α
if␈↓ ε∞␈ελx␈↓ ε,␈ε⊗⊃␈↓ ε\␈ελy␈↓ ε|␈εα(modulo␈↓ λλ␈ελm␈↓ λ4␈εα);␈α∞furthermore␈α
if␈↓
D␈ελx␈↓
c␈ε⊗⊃␈↓ ∩␈ελx
␈βεA␈↓ αI␈εj␈↓ ∧∃␈εj␈↓ λ'␈εj
␈βεZ␈↓ α␈␈ε→0␈↓ ∧u␈ε→0␈↓ ¬⊂␈ε→0
␈βε←␈↓ ↓H␈εαand␈↓ α⊃␈ελy␈↓ α6␈ε⊗⊃␈↓ αj␈ελy␈↓ βε␈εα,␈α⊃then␈↓ βv␈ελx␈↓ ∧ ␈ελy␈↓ ∧.␈ε⊗⊃␈↓ ∧b␈ελx␈↓ ∧|␈ελy␈↓ ¬(␈εα(modulo␈↓ ε4␈ελm␈↓ ε`␈εα);␈α⊃hence␈α⊂(␈↓ π{␈ελu␈↓ λ↔␈εαmod␈↓ λa␈ελm␈↓
␈εα)(␈↓ %␈ελv␈↓ =␈εαmod␈↓
π␈ελm␈↓
3␈εα)␈ε⊗␈α⊃⊃␈↓ ∧␈ελu␈↓ ~␈ελv
␈βεl␈↓ εR␈εj␈↓ λ␈␈εj␈↓
&␈εj
␈βπ
␈↓ ↓H␈εα(modulo␈↓ αT␈ελm␈↓ α␈␈εα).
␈βπ_␈↓ αr␈εj
␈βπ5␈↓ α␈εαThe␈αdisadvan␈α␈tages␈αof␈αa␈αmodular␈αrepresen␈α␈tation␈αare␈αthat␈αit␈αis␈αcomparativ␈α␈ely
␈βπa␈↓ ↓H␈εαdi}cult␈α to␈α test␈α
whether␈α a␈α
n␈α␈um␈α␈ber␈α is␈α positiv␈α␈e␈α
or␈α negativ␈α␈e␈α
or␈α to␈α test␈α
whether␈α or␈α not
␈βλ␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈εα.␈αε.␈αε.␈↓ α7␈εα,␈↓ αG␈ελu␈↓ αi␈εα)␈αis␈α
greater␈α
than␈α
(␈↓ ¬α␈ελv␈↓ ¬!␈εα,␈↓ ¬1␈εα.␈αε.␈αε.␈↓ ¬a␈εα,␈↓ ¬q␈ελv␈↓ ε∞␈εα).␈α∂It␈α
is␈α
also␈α
di}cult␈α
to␈α
test␈αwhether␈α
or␈α
not
␈βλ→␈↓ ↓h␈ε¬1␈↓ α[␈εr␈↓ ¬∩␈ε¬1␈↓ ε␈εr
␈βλ7␈↓ ↓H␈εαo␈α␈v␈α␈er⎇o␈α␈w␈α
has␈α
occurred␈α
as␈α
the␈α
result␈α
of␈α
an␈α
addition,␈α
subtraction,␈α
or␈α
m␈α␈ultiplication,
␈βλb␈↓ ↓H␈εαand␈αit␈α
is␈α
ev␈α␈en␈αmore␈α
di}cult␈α
to␈αperform␈α
division.␈α∞When␈αthese␈α
operations␈α
are␈αre-
␈β
␈↓ ↓H␈εαquired␈αfrequen␈α␈tly␈αin␈αconjunction␈αwith␈αaddition,␈αsubtraction,␈αand␈αm␈α␈ultiplication,
␈β 9␈↓ ↓H␈εαthe␈α
use␈α∞of␈α
modular␈α
arithmetic␈α∞can␈α
be␈α∞justi|ed␈α
only␈α∞if␈α
fast␈α∞means␈α
of␈α
con␈α␈v␈α␈ersion
␈β d␈↓ ↓H␈εαin␈α␈to␈α
and␈α
out␈α
of␈α∞the␈α
modular␈α
represen␈α␈tation␈α
are␈α∞available.␈α∂Therefore␈α
con␈α␈v␈α␈ersion
␈β
∂␈↓ ↓H␈εαbet␈α␈w␈α␈een␈α
modular␈α
and␈α
positional␈α
notation␈α
is␈α
one␈α
of␈α
the␈α principal␈α
topics␈α
of␈α
in␈α␈terest
␈β
:␈↓ ↓H␈εαto␈αus␈αin␈αthis␈αsection.
␈β
e␈↓ α␈εαThe␈α
processes␈α
of␈α
addition,␈α
subtraction,␈αand␈α
m␈α␈ultiplication␈α
using␈α
(2),␈α
(3),␈α
and
␈β⊃␈↓ ↓H␈εα(4)␈α∞are␈α
called␈α∞residue␈α∞arithmetic␈α∞or␈ε∂␈α∞modular␈α∞arithmetic.␈εα␈α∩The␈α∞range␈α∞of␈α
n␈α␈um␈α␈bers
␈β<␈↓ ↓H␈εαthat␈α∞can␈α∞be␈α∂handled␈α∞by␈α∂modular␈α∞arithmetic␈α∂is␈α∞equal␈α∞to␈↓ λF␈ελm␈↓ λt␈εα=␈↓ &␈ελm␈↓ S␈ελm␈↓
ε␈εα.␈αε.␈αε.␈↓
6␈ελm␈↓
a␈εα,␈α∂the
␈βI␈↓ D␈ε¬1␈↓ q␈ε¬2␈↓
T␈εr
␈βg␈↓ ↓H␈εαproduct␈α∞of␈α∂the␈α∂moduli.␈α∃Therefore␈α∂w␈α␈e␈α∞see␈α∂that␈α∂the␈α∂amoun␈α␈t␈α∂of␈α∂time␈α∂required␈α∞to
␈β∩␈↓ ↓H␈εαadd,␈α∂subtract,␈α⊂or␈α∂m␈α␈ultiply␈↓ ∧z␈ελn␈↓ ¬⊂␈εα-digit␈α∂n␈α␈um␈α␈bers␈α∂using␈α∂modular␈α∂arithmetic␈α∂is␈α∂essen-
␈β=␈↓ ↓H␈εαtially␈αproportional␈αto␈↓ ∧≥␈ελn␈↓ ∧>␈εα(not␈αcoun␈α␈ting␈αthe␈αtime␈αto␈αcon␈α␈v␈α␈ert␈αin␈αand␈αout␈αof␈αmodular
␈βi␈↓ ↓H␈εαrepresen␈α␈tation).␈α⊂This␈α
is␈α
no␈α
advan␈α␈tage␈α∞at␈α
all␈α
when␈α∞addition␈α
and␈α
subtraction␈α
are
␈β
∀␈↓ ↓H␈εαconsidered,␈α
but␈α
it␈α
can␈α be␈α
a␈α
considerable␈α
advan␈α␈tage␈α
with␈α
respect␈α
to␈α m␈α␈ultiplication
␈β
?␈↓ ↓H␈εαsince␈αλthe␈α con␈α␈v␈α␈en␈α␈tional␈αλmethod␈α of␈α the␈αλpreceding␈α section␈α requires␈αλan␈α ex␈α␈ecution␈αλtime
␈β
e␈↓ βW␈ε¬2
␈β
j␈↓ ↓H␈εαproportional␈αto␈↓ βB␈ελn␈↓ βf␈εα.
␈β∞∃␈↓ α␈εαMoreo␈α␈v␈α␈er,␈α
on␈α
a␈αcomputer␈α
that␈α
allo␈α␈ws␈α
man␈α␈y␈αoperations␈α
to␈α
tak␈α␈e␈α
place␈αsim␈α␈ul-
␈β∞A␈↓ ↓H␈εαtaneously,␈α
modular␈αarithmetic␈α
can␈α
be␈α
a␈αsigni|can␈α␈t␈α
advan␈α␈tage␈α
ev␈α␈en␈α
for␈αaddition
␈β∞l␈↓ ↓H␈εαand␈αsubtraction;␈αthe␈αoperations␈αwith␈αrespect␈αto␈αdi{eren␈α␈t␈αmoduli␈αcan␈αall␈αbe␈αdone
␈β∂↔␈↓ ↓H␈εαat␈α
the␈αsame␈αtime,␈α
so␈αw␈α␈e␈αobtain␈α
a␈αsubstan␈α␈tial␈αincrease␈α
in␈αspeed.␈αThe␈α
same␈αkind␈α
of
␈β∂B␈↓ ↓H␈εαdecrease␈α
in␈αex␈α␈ecution␈α
time␈αcould␈α
not␈αbe␈α
achiev␈α␈ed␈αby␈α
the␈αcon␈α␈v␈α␈en␈α␈tional␈α
techniques
␈β∂m␈↓ ↓H␈εαdiscussed␈α∞in␈α∂the␈α∞previous␈α∂section,␈α∂since␈α∞carry␈α∂propagation␈α∞m␈α␈ust␈α∂be␈α∞considered.
␈β⊂→␈↓ ↓H␈εαPerhaps␈αsome␈α
day␈αhighly␈α
parallel␈αcomputers␈α
will␈αmak␈α␈e␈α
sim␈α␈ultaneous␈αoperations
␈β⊂D␈↓ ↓H␈εαcommonplace,␈α⊂so␈α∂that␈α∂modular␈α⊂arithmetic␈α∂will␈α∂be␈α⊂of␈α∂signi|can␈α␈t␈α∂importance␈α∂in
␈β⊂o␈↓ ↓H␈εα\real-time"␈αcalculations␈αwhen␈αa␈αquick␈αansw␈α␈er␈αto␈αa␈αsingle␈αproblem␈αrequiring␈αhigh
␈β⊃~␈↓ ↓H␈εαprecision␈α
is␈α
needed.␈α(With␈α
highly␈α
parallel␈α
computers,␈αit␈α
is␈αoften␈α
preferable␈α
to␈α
run
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α ARIT␈α␈HMET␈α␈IC␈↓
v␈εα267
␈βα(␈↓ ↓H␈ελk␈↓ ↓d␈ε∂separate␈εα␈α
programs␈α
sim␈α␈ultaneously,␈α
instead␈αof␈α
running␈α
a␈ε∂␈α
single␈εα␈α
program␈↓
<␈ελk␈↓
X␈εαtimes
␈βαS␈↓ ↓H␈εαas␈αfast,␈α
since␈αthe␈α
latter␈αalternativ␈α␈e␈αis␈α
more␈αcomplicated␈α
but␈αdoes␈α
not␈αutilize␈αthe
␈βα}␈↓ ↓H␈εαmachine␈αan␈α␈y␈αmore␈αe}cien␈α␈tly;␈α\real-time"␈αcalculations␈αare␈αex␈α␈ceptions␈αthat␈αmak␈α␈e
␈ββ*␈↓ ↓H␈εαthe␈αinheren␈α␈t␈αparallelism␈αof␈αmodular␈αarithmetic␈αmore␈αsigni|can␈α␈t.)
␈ββW␈↓ α␈εαNo␈α␈w␈α
let␈α
us␈αexamine␈α
the␈α
basic␈α
fact␈αthat␈α
underlies␈α
the␈α
modular␈α
represen␈α␈tation
␈β∧β␈↓ ↓H␈εαof␈αn␈α␈um␈α␈bers:
␈β∧U␈↓ ↓H␈ε∩Theorem␈α∂C␈εα␈α⊂(␈ε∂Chinese␈α⊂Remainder␈α⊂Theorem␈εα)␈ε∩.␈ε∂␈α Let␈↓ πj␈ελm␈↓ λ↔␈ε∂,␈↓ λ1␈ελm␈↓ λ↑␈ε∂,␈↓ λy␈εα.␈αε.␈αε.␈↓ )␈ε∂,␈↓ D␈ελm␈↓
␈ε∂be␈α∂positiv␈α␈e
␈β∧b␈↓ λλ␈ε¬1␈↓ λP␈ε¬2␈↓ b␈εr
␈β¬␈↓ ↓H␈ε∂in␈α␈tegers␈αthat␈αare␈αrelativ␈α␈ely␈αprime␈αin␈αpairs,␈αi.e.,
␈β¬↑␈↓ ∧5␈εαgcd␈↓ ∧k␈εα(␈↓ ∧w␈ελm␈↓ ¬"␈εα,␈↓ ¬2␈ελm␈↓ ¬←␈εα)␈α
=␈α
1␈↓ ε⎇␈εαwhen␈↓ π[␈ελj␈↓ πv␈ε⊗≤␈↓ λ$␈ελk␈↓ λ6␈εα.␈↓ α␈εα(5)
␈β¬k␈↓ ¬∃␈εj␈↓ ¬Q␈εk
␈βε<␈↓ ↓H␈ε∂Let␈↓ απ␈ελm␈↓ α1␈εα=␈↓ α←␈ελm␈↓ β␈ελm␈↓ β?␈εα.␈αε.␈αε.␈↓ βo␈ελm␈↓ ∧≠␈ε∂,␈α
and␈α let␈↓ ¬$␈ελa␈↓ ¬6␈ε∂,␈↓ ¬J␈ελu␈↓ ¬m␈ε∂,␈↓ ε↓␈ελu␈↓ ε$␈ε∂,␈↓ ε8␈εα.␈αε.␈αε.␈↓ εh␈ε∂,␈↓ ε|␈ελu␈↓ π(␈ε∂be␈α in␈α␈tegers.␈αThen␈α there␈α
is␈α exactly
␈βεI␈↓ α⎇␈ε¬1␈↓ β*␈ε¬2␈↓ ∧
␈εr␈↓ ¬←␈ε¬1␈↓ ε⊗␈ε¬2␈↓ π⊃␈εr
␈βεg␈↓ ↓H␈ε∂one␈αin␈α␈teger␈↓ β↓␈ελu␈↓ β"␈ε∂that␈αsatis|es␈αthe␈αconditions
␈βπE␈↓ α8␈ελa␈↓ αT␈ε⊗∀␈↓ βα␈ελu␈↓ β!␈εα<␈↓ βO␈ελa␈↓ βi␈εα+␈↓ ∧∃␈ελm␈↓ ∧5␈εα,␈↓ ¬
␈εαand␈↓ ε∂␈ελu␈↓ ε/␈ε⊗⊃␈↓ ε]␈ελu␈↓ πλ␈εα(modulo␈↓ λ∀␈ελm␈↓ λ@␈εα)␈↓ λX␈εαfor␈↓ ⊂␈εα1␈ε⊗␈α
∀␈↓ Z␈ελj␈↓ t␈ε⊗∀␈↓
"␈ελr␈↓
2␈εα.␈↓ α␈εα(6)
␈βπR␈↓ εq␈εj␈↓ λ3␈εj
␈βλ%␈↓ ↓H␈ε∂Proof.␈εα␈α→If␈↓ αd␈ελu␈↓ β∧␈ε⊗⊃␈↓ β2␈ελv␈↓ βP␈εα(modulo␈↓ ∧\␈ελm␈↓ ¬π␈εα)␈α
for␈α1␈ε⊗␈α∀␈↓ ε#␈ελj␈↓ ε>␈ε⊗∀␈↓ εl␈ελr␈↓ ε|␈εα,␈α
then␈↓ πe␈ελu␈↓ λβ␈ε⊗␈␈↓ λ/␈ελv␈↓ λN␈εαis␈αa␈α
m␈α␈ultiple␈αof␈↓
H␈ελm␈↓ ␈εαfor
␈βλ2␈↓ ∧z␈εj␈↓
g␈εj
␈βλP␈↓ ↓H␈εαall␈↓ ↓y␈ελj␈↓ α ␈εα,␈αso␈α(5)␈αimplies␈αthat␈↓ ∧D␈ελu␈↓ ∧`␈ε⊗␈␈↓ ¬␈ελv␈↓ ¬)␈εαis␈α
a␈αm␈α␈ultiple␈αof␈↓ π≥␈ελm␈↓ πG␈εα=␈↓ πu␈ελm␈↓ λ"␈ελm␈↓ λU␈εα.␈αε.␈αε.␈↓ ¬␈ελm␈↓ 1␈εα.␈αThis␈αargumen␈α␈t
␈βλ↑␈↓ λ∀␈ε¬1␈↓ λA␈ε¬2␈↓ $␈εr
␈βλ{␈↓ ↓H␈εαsho␈α␈ws␈αthat␈α
there␈αis␈ε∂␈α
at␈α
most␈εα␈αone␈α
solution␈αof␈α
(6).␈α∞To␈αcomplete␈α
the␈αproof␈α
w␈α␈e␈αm␈α␈ust
␈β '␈↓ ↓H␈εαno␈α␈w␈α∂sho␈α␈w␈α⊂the␈α∂existence␈α∂of␈ε∂␈α⊂at␈α∂least␈εα␈α⊂one␈α∂solution,␈α⊃and␈α∂this␈α⊂can␈α∂be␈α⊂done␈α∂in␈α∂t␈α␈w␈α␈o
␈β R␈↓ ↓H␈εαsimple␈αways:
␈β
$␈↓ ↓H␈εαMETHOD␈α 1␈α (\Nonconstructiv␈α␈e"␈α proof).␈α∪As␈↓ εv␈ελu␈↓ π∃␈εαruns␈α through␈α the␈↓ "␈ελm␈↓ K␈εαdistinct␈α values
␈β
O␈↓ ↓H␈ελa␈↓ ↓f␈ε⊗∀␈↓ α⊗␈ελu␈↓ α9␈εα<␈↓ αi␈ελa␈↓ β∧␈εα+␈↓ β1␈ελm␈↓ βQ␈εα,␈α∞the␈↓ ∧(␈ελr␈↓ ∧8␈εα-tuples␈α
(␈↓ ¬;␈ελu␈↓ ¬W␈εαmod␈↓ ε!␈ελm␈↓ εN␈εα,␈↓ ε↑␈εα.␈αε.␈αε.␈↓ π∞␈εα,␈↓ π≡␈ελu␈↓ π:␈εαmod␈↓ λ∧␈ελm␈↓ λ/␈εα)␈α∞m␈α␈ust␈α
also␈α∞run␈α
through
␈β
\␈↓ ε@␈ε¬1␈↓ λ"␈εr
␈β
z␈↓ ↓H␈ελm␈↓ ↓x␈εαdistinct␈α⊃values,␈α∩since␈α⊃(6)␈α⊂has␈α⊃at␈α⊃most␈α⊃one␈α⊃solution.␈α~But␈α⊃there␈α⊃are␈α⊂exactly
␈β%␈↓ ↓H␈ελm␈↓ ↓u␈ελm␈↓ α(␈εα.␈αε.␈αε.␈↓ αX␈ελm␈↓ β∞␈εαpossible␈↓ ∧∪␈ελr␈↓ ∧#␈εα-tuples␈α(␈↓ ¬$␈ελv␈↓ ¬B␈εα,␈↓ ¬R␈εα.␈αε.␈αε.␈↓ εα␈εα,␈↓ ε∩␈ελv␈↓ ε/␈εα)␈αsuch␈α
that␈α0␈ε⊗␈α
∀␈↓ λ-␈ελv␈↓ λT␈εα<␈↓ α␈ελm␈↓ .␈εα.␈αTherefore␈α
each
␈β3␈↓ ↓f␈ε¬1␈↓ α∪␈ε¬2␈↓ αv␈εr␈↓ ¬3␈ε¬1␈↓ ε"␈εr␈↓ λ=␈εj␈↓ !␈εj
␈βQ␈↓ ↓H␈ελr␈↓ ↓W␈εα-tuple␈α∞m␈α␈ust␈α
occur␈α∞exactly␈α
once,␈α∞and␈α∞there␈α
m␈α␈ust␈α∞be␈α
some␈α∞value␈α
of␈↓ t␈ελu␈↓
↔␈εαfor␈α
which
␈β|␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓o␈εαmod␈↓ α9␈ελm␈↓ αf␈εα,␈↓ αv␈εα.␈αε.␈αε.␈↓ β&␈εα,␈↓ β6␈ελu␈↓ βR␈εαmod␈↓ ∧≤␈ελm␈↓ ∧H␈εα)␈α
=␈α
(␈↓ ¬_␈ελu␈↓ ¬;␈εα,␈↓ ¬K␈εα.␈αε.␈αε.␈↓ ¬{␈εα,␈↓ ε␈ελu␈↓ ε-␈εα).
␈β ␈↓ αX␈ε¬1␈↓ ∧;␈εr␈↓ ¬,␈ε¬1␈↓ ε∨␈εr
␈βN␈↓ ↓H␈εαMETHOD␈α∞2␈α∞(\Constructiv␈α␈e"␈α∞proof).␈α≤We␈α∞can␈α∞|nd␈α∞n␈α␈um␈α␈bers␈↓ ␈ελM␈↓ C␈εαfor␈α∞1␈ε⊗␈α∞∀␈↓
N␈ελj␈↓
k␈ε⊗∀␈↓ ≥␈ελr
␈β[␈↓ (␈εj
␈βy␈↓ ↓H␈εαsuch␈αthat
␈β
W␈↓ α<␈ελM␈↓ αs␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ ∧I␈ελm␈↓ ∧t␈εα)␈↓ ¬H␈εαand␈↓ εJ␈ελM␈↓ π↓␈ε⊗⊃␈εα␈α
0␈α
(modulo␈↓ λW␈ελm␈↓ ∧␈εα)␈↓ ≤␈εαfor␈↓ T␈ελk␈↓ o␈ε⊗≤␈↓
≥␈ελj␈↓
.␈εα.␈↓ α␈εα(7)
␈β
d␈↓ α[␈εj␈↓ ∧g␈εj␈↓ εi␈εj␈↓ λu␈εk
␈β∞5␈↓ ↓H␈εαThis␈α
follo␈α␈ws␈α
because␈α∞(5)␈α
implies␈α∞that␈↓ ε≠␈ελm␈↓ εT␈εαand␈↓ π≤␈ελm␈↓ π;␈εα/␈↓ πM␈ελm␈↓ λε␈εαare␈α∞relativ␈α␈ely␈α
prime,␈α∞so␈α
w␈α␈e
␈β∞B␈↓ ε:␈εj␈↓ πl␈εj
␈β∞`␈↓ ↓H␈εαmay␈αtak␈α␈e
␈β∂
␈↓ π↓␈ε⎇␈↓ π∀␈ε¬(␈↓ π≡␈εm␈↓ πC␈ε¬)
␈β∂∪␈↓ ¬(␈ελM␈↓ ¬↑␈εα=␈α
(␈↓ ε_␈ελm␈↓ ε7␈εα/␈↓ εI␈ελm␈↓ εu␈εα)␈↓ α␈εα(8)
␈β∂∃␈↓ π7␈ε
j
␈β∂ ␈↓ ¬G␈εj␈↓ εh␈εj
␈β∂←␈↓ ↓H␈εαby␈αEuler's␈αtheorem␈α(ex␈α␈ercise␈α1.2.4↑28).␈αNo␈α␈w␈αthe␈αn␈α␈um␈α␈ber
␈β⊂≥␈↓ ∧5␈ε↓␈␈↓ E␈ε↓↓
␈β⊂<␈↓ β!␈ελu␈↓ βA␈εα=␈↓ βo␈ελa␈↓ ∧ ␈εα+␈↓ ∧C␈εα(␈↓ ∧O␈ελu␈↓ ∧r␈ελM␈↓ ¬'␈εα+␈↓ ¬S␈ελu␈↓ ¬v␈ελM␈↓ ε+␈εα+␈↓ εW␈ε⊗↓␈αε↓␈αε↓␈↓ π ␈εα+␈↓ π5␈ελu␈↓ πW␈ελM␈↓ λ␈ε⊗␈␈↓ λ8␈ελa␈↓ λI␈εα)␈↓ λ[␈εαmod␈↓ %␈ελm␈↓ α␈εα(9)
␈β⊂J␈↓ ∧c␈ε¬1␈↓ ¬⊃␈ε¬1␈↓ ¬g␈ε¬2␈↓ ε∃␈ε¬2␈↓ πJ␈εr␈↓ πv␈εr
␈β⊃~␈↓ ↓H␈εαsatis|es␈αall␈αthe␈αconditions␈αof␈α(6).
␈β⊃∨␈↓ ¬m␈∧⊃∨¬m≠∂
␈β∪(
␈β↓Y␈↓ ↓H␈εα268␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.2
␈βα(␈↓ α␈εαA␈α v␈α␈ery␈αλspecial␈α case␈α of␈αλthis␈α theorem␈αλwas␈α stated␈α by␈αλthe␈α Chinese␈αλmathematician
␈βαS␈↓ ↓H␈εαSun-Ts␈↓ α8␈εαu␈↓ α9␈εα⊃␈↓ αL␈εα,␈α∂who␈α∂gav␈α␈e␈α∂a␈α∂rule␈α∂called␈α∂t␈↓ ¬m␈εα∞␈↓ ¬m␈εαa␈↓ ¬␈␈εαi-y␈α␈en␈α∂(\great␈α∂generalization").␈α∃The␈α∂date␈α∞of
␈βα}␈↓ ↓H␈εαhis␈α
writing␈α
is␈α
v␈α␈ery␈α
uncertain;␈α∞it␈α
is␈α
though␈α␈t␈α
to␈α
be␈α
bet␈α␈w␈α␈een␈α
280␈α∞and␈α
473␈ε∞␈α
A␈α␈.D.␈εα␈α[See
␈ββ*␈↓ ↓H␈εαJoseph␈α∂Needham,␈ε∂␈α⊃Science␈α∂and␈α⊂Civilization␈α∂in␈α⊂China␈ε∩␈α∂3␈εα␈α⊂(Cam␈α␈bridge␈α∂Univ␈α␈ersity
␈ββU␈↓ ↓H␈εαPress,␈α1959),␈α33↑34,␈α119↑120,␈αfor␈αan␈α
in␈α␈teresting␈αdiscussion.]␈αTheorem␈αC␈αwas␈αap-
␈β∧␈↓ ↓H␈εαparen␈α␈tly␈α|rst␈αstated␈αand␈αpro␈α␈v␈α␈ed␈αin␈αits␈αproper␈αgenerality␈αby␈αChhin␈αChiu-Shao␈αin
␈β∧+␈↓ ↓H␈εαhis␈ε∂␈α∞Sh␈α␈u␈α∂Sh␈α␈u␈α∞Chiu␈α∂Chang␈εα␈α∂(1247).␈α∪Numerous␈α∂early␈α∂con␈α␈tributions␈α∞to␈α∂this␈α∞theory
␈β∧V␈↓ ↓H␈εαhav␈α␈e␈α been␈α summarized␈α
by␈α L.␈α E.␈α
Dickson␈α in␈α his␈ε∂␈α
History␈α of␈α the␈α
Theory␈α of␈α Num␈α␈bers
␈β¬α␈↓ ↓H␈ε∩2␈εα␈α(New␈αYork:␈αChelsea,␈α1952),␈α57↑64.
␈β¬-␈↓ α␈εαAs␈α⊂a␈α∂consequence␈α⊂of␈α⊂Theorem␈α∂C,␈α⊂w␈α␈e␈α⊂may␈α∂use␈α⊂modular␈α⊂represen␈α␈tation␈α∂for
␈β¬X␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αin␈αan␈α␈y␈αconsecutiv␈α␈e␈αin␈α␈terval␈αof␈↓ ε0␈ελm␈↓ εY␈εα=␈↓ ππ␈ελm␈↓ π4␈ελm␈↓ πg␈εα.␈αε.␈αε.␈↓ λ↔␈ελm␈↓ λO␈εαin␈α␈tegers.␈αFor␈αexample,
␈β¬e␈↓ π&␈ε¬1␈↓ πS␈ε¬2␈↓ λ6␈εr
␈βεβ␈↓ ↓H␈εαw␈α␈e␈αcould␈αtak␈α␈e␈↓ β)␈ελa␈↓ βE␈εα=␈α
0␈αin␈α(6),␈αand␈αw␈α␈ork␈αonly␈αwith␈αnonnegativ␈α␈e␈αin␈α␈tegers␈↓
α␈ελu␈↓
#␈εαless␈αthan
␈βε.␈↓ ↓H␈ελm␈↓ ↓g␈εα.␈αOn␈αthe␈αother␈αhand,␈αwhen␈αaddition␈αand␈αsubtraction␈αare␈αbeing␈α
done,␈αas␈αw␈α␈ell␈α
as
␈βεZ␈↓ ↓H␈εαm␈α␈ultiplication,␈α
it␈α∞is␈α
usually␈α
most␈α
con␈α␈v␈α␈enien␈α␈t␈α∞to␈α
assume␈α
that␈α∞all␈α
the␈α
moduli␈↓
u␈ελm␈↓ "␈εα,
␈βεg␈↓ ∀␈ε¬1
␈βπ¬␈↓ ↓H␈ελm␈↓ ↓u␈εα,␈↓ α ␈εα.␈αε.␈αε.␈↓ α9␈εα,␈↓ αN␈ελm␈↓ β∧␈εαare␈α
odd␈αn␈α␈um␈α␈bers,␈α
so␈αthat␈↓ ε∩␈ελm␈↓ ε<␈εα=␈↓ εj␈ελm␈↓ π⊗␈ελm␈↓ πI␈εα.␈αε.␈αε.␈↓ πy␈ελm␈↓ λ0␈εαis␈α
odd,␈αand␈α
to␈α
w␈α␈ork␈α
with
␈βπ∩␈↓ ↓f␈ε¬2␈↓ αl␈εr␈↓ πλ␈ε¬1␈↓ π5␈ε¬2␈↓ λ_␈εr
␈βπ0␈↓ ↓H␈εαin␈α␈tegers␈αin␈αthe␈αrange
␈βπK␈↓ ¬a␈ελm␈↓ π∞␈ελm
␈βπa␈↓ ¬9␈ε⊗␈␈↓ ε∞␈εα<␈↓ ε<␈ελu␈↓ ε\␈εα<␈↓ π2␈εα,␈↓
p␈εα(10)
␈βπr␈↓ ¬a␈∧πr¬aα ␈↓ π∞␈∧πrπ∞α
␈βπz␈↓ ¬g␈εα2␈↓ π∃␈εα2
␈βλ/␈↓ ↓H␈εαwhich␈αis␈αcompletely␈αsymmetrical␈αabout␈αzero.
␈βλZ␈↓ α␈εαTo␈αλperform␈αλthe␈α basic␈αλoperations␈αλindicated␈αλin␈α (2),␈α (3),␈α and␈αλ(4),␈α w␈α␈e␈αλneed␈αλto␈αλcom-
␈β ¬␈↓ ↓H␈εαpute␈α (␈↓ α#␈ελu␈↓ αH␈εα+␈↓ αp␈ελv␈↓ β
␈εα)␈↓ β∨␈εαmod␈↓ βi␈ελm␈↓ ∧∃␈εα,␈α (␈↓ ∧4␈ελu␈↓ ∧Z␈ε⊗␈␈↓ ¬α␈ελv␈↓ ¬∨␈εα)␈↓ ¬1␈εαmod␈↓ ¬{␈ελm␈↓ ε'␈εα,␈α and␈↓ ε⎇␈ελu␈↓ π∨␈ελv␈↓ πB␈εαmod␈↓ λ␈ελm␈↓ λ7␈εα,␈α
when␈α 0␈ε⊗␈α
∀␈↓ p␈ελu␈↓
∩␈εα,␈↓
"␈ελv␈↓
I␈εα<␈↓
w␈ελm␈↓ "␈εα.
␈β ∪␈↓ α7␈εj␈↓ β␈εj␈↓ ∧λ␈εj␈↓ ∧I␈εj␈↓ ¬⊃␈εj␈↓ ε→␈εj␈↓ π⊃␈εj␈↓ π.␈εj␈↓ λ*␈εj␈↓
∧␈εj␈↓
1␈εj␈↓ ∃␈εj
␈β 1␈↓ ↓H␈εαIf␈↓ ↓k␈ελm␈↓ α#␈εαis␈αa␈αsingle-precision␈αn␈α␈um␈α␈ber,␈αit␈αis␈αmost␈αcon␈α␈v␈α␈enien␈α␈t␈αto␈αform␈↓ >␈ελu␈↓ `␈ελv␈↓
β␈εαmod␈↓
M␈ελm␈↓ ∧␈εαby
␈β >␈↓ α
␈εj␈↓ S␈εj␈↓ p␈εj␈↓
k␈εj
␈β \␈↓ ↓H␈εαdoing␈αa␈αm␈α␈ultiplication␈αand␈αthen␈αa␈αdivision␈αoperation.␈αFor␈αaddition␈αand␈αsubtrac-
␈β
π␈↓ ↓H␈εαtion,␈αthe␈αsituation␈αis␈αa␈αlittle␈αsimpler,␈αsince␈αno␈αdivision␈αis␈αnecessary;␈αthe␈αfollo␈α␈wing
␈β
2␈↓ ↓H␈εαform␈α␈ulas␈αmay␈αcon␈α␈v␈α␈enien␈α␈tly␈αbe␈αused:
␈β␈↓ ¬≠␈ε↓~
␈ββ␈↓ ¬1␈ελu␈↓ ¬[␈εα+␈↓ επ␈ελv␈↓ ε$␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈εα+␈↓ λM␈ελv␈↓ λt␈εα<␈↓ "␈ελm␈↓ N␈εα;
␈β⊃␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ λ␈εj␈↓ λ]␈εj␈↓ A␈εj
␈β≠␈↓ α\␈εα(␈↓ αh␈ελu␈↓ β∩␈εα+␈↓ β>␈ελv␈↓ β[␈εα)␈↓ βm␈εαmod␈↓ ∧7␈ελm␈↓ ∧m␈εα=␈↓
p␈εα(11)
␈β(␈↓ α⎇␈εj␈↓ βN␈εj␈↓ ∧V␈εj
␈β/␈↓ ¬1␈ελu␈↓ ¬[␈εα+␈↓ επ␈ελv␈↓ ε,␈ε⊗␈␈↓ εX␈ελm␈↓ πβ␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈εα+␈↓ λM␈ελv␈↓ λt␈ε⊗∃␈↓ "␈ελm␈↓ N␈εα.
␈β<␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ εv␈εj␈↓ λ␈εj␈↓ λ]␈εj␈↓ A␈εj
␈βi␈↓ ¬≠␈ε↓~
␈βl␈↓ ¬1␈ελu␈↓ ¬[␈ε⊗␈␈↓ επ␈ελv␈↓ ε$␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈ε⊗␈␈↓ λM␈ελv␈↓ λt␈ε⊗∃␈εα␈α
0;
␈βy␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ λ␈εj␈↓ λ]␈εj
␈ββ␈↓ α\␈εα(␈↓ αh␈ελu␈↓ β∩␈ε⊗␈␈↓ β>␈ελv␈↓ β[␈εα)␈↓ βm␈εαmod␈↓ ∧7␈ελm␈↓ ∧m␈εα=␈↓
p␈εα(12)
␈β⊂␈↓ α⎇␈εj␈↓ βN␈εj␈↓ ∧V␈εj
␈β↔␈↓ ¬1␈ελu␈↓ ¬[␈ε⊗␈␈↓ επ␈ελv␈↓ ε,␈εα+␈↓ εX␈ελm␈↓ πβ␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈ε⊗␈␈↓ λM␈ελv␈↓ λt␈εα<␈α
0.
␈β$␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ εv␈εj␈↓ λ␈εj␈↓ λ]␈εj
␈βn␈↓ ↓H␈εα(Cf.␈αSection␈α3.2.1.1.)␈α_In␈αthis␈αcase,␈αsince␈αw␈α␈e␈αwan␈α␈t␈↓ πO␈ελm␈↓ π{␈εαto␈αbe␈αas␈αlarge␈αas␈αpossible,␈αit
␈β
→␈↓ ↓H␈εαis␈α
easiest␈α
to␈α
let␈↓ β7␈ελm␈↓ βn␈εαbe␈α
the␈α
largest␈αodd␈α
n␈α␈um␈α␈ber␈α
that␈α|ts␈α
in␈α
a␈α
computer␈αw␈α␈ord,␈α
to␈α
let
␈β
&␈↓ βU␈ε¬1
␈β
D␈↓ ↓H␈ελm␈↓ α␈εαbe␈αthe␈αlargest␈αodd␈αn␈α␈um␈α␈ber␈α<␈↓ ¬V␈ελm␈↓ ε∞␈εαthat␈αis␈αrelativ␈α␈ely␈αprime␈αto␈↓ .␈ελm␈↓ [␈εα,␈αto␈αlet␈↓
P␈ελm␈↓ λ␈εαbe
␈β
Q␈↓ ↓f␈ε¬2␈↓ ¬t␈ε¬1␈↓ M␈ε¬1␈↓
o␈ε¬3
␈β
o␈↓ ↓H␈εαthe␈α
largest␈α
odd␈α
n␈α␈um␈α␈ber␈α
<␈↓ ∧v␈ελm␈↓ ¬0␈εαthat␈α
is␈α
relativ␈α␈ely␈α
prime␈α
to␈α
both␈↓ -␈ελm␈↓ g␈εαand␈↓
.␈ελm␈↓
[␈εα,␈α
and
␈β
⎇␈↓ ¬∀␈ε¬2␈↓ L␈ε¬1␈↓
M␈ε¬2
␈β∞~␈↓ ↓H␈εαso␈α
on␈α
un␈α␈til␈α
enough␈↓ βz␈ελm␈↓ ∧&␈εα's␈α
hav␈α␈e␈α
been␈α
found␈α
to␈α
giv␈α␈e␈α
the␈α
desired␈α
range␈↓ s␈ελm␈↓
∪␈εα.␈α∞E}cien␈α␈t
␈β∞(␈↓ ∧→␈εj
␈β∞F␈↓ ↓H␈εαways␈α
to␈α
determine␈α
whether␈αor␈α
not␈α
t␈α␈w␈α␈o␈α
in␈α␈tegers␈αare␈α
relativ␈α␈ely␈α
prime␈α
are␈α
discussed
␈β∞q␈↓ ↓H␈εαin␈αSection␈α4.5.2.
␈β∂≤␈↓ α␈εαAs␈α
a␈αsimple␈α
example,␈α
suppose␈αthat␈α
w␈α␈e␈α
hav␈α␈e␈α
a␈αdecimal␈α
computer␈α
with␈α
a␈α
w␈α␈ord
␈β∂G␈↓ ↓H␈εαsize␈αof␈αonly␈α100.␈αThen␈αthe␈αprocedure␈αdescribed␈αin␈αthe␈αprevious␈αparagraph␈αw␈α␈ould
␈β∂r␈↓ ↓H␈εαgiv␈α␈e
␈β⊂G␈↓ ↓H␈ελm␈↓ ↓␈␈εα=␈α
99,␈↓ β¬␈ελm␈↓ β<␈εα=␈α
97,␈↓ ∧B␈ελm␈↓ ∧y␈εα=␈α
95,␈↓ ¬␈␈ελm␈↓ ε6␈εα=␈α
91,␈↓ π<␈ελm␈↓ πr␈εα=␈α
89,␈↓ λx␈ελm␈↓ /␈εα=␈α
83,␈↓
p␈εα(13)
␈β⊂U␈↓ ↓f␈ε¬1␈↓ β#␈ε¬2␈↓ ∧`␈ε¬3␈↓ ε≥␈ε¬4␈↓ πZ␈ε¬5␈↓ ↔␈ε¬6
␈β⊃≤␈↓ ↓H␈εαand␈αso␈αon.
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α ARIT␈α␈HMET␈α␈IC␈↓
v␈εα269
␈βα%␈↓ α␈εαOn␈α binary␈α computers␈α it␈α is␈α sometimes␈α desirable␈α to␈α choose␈α the␈↓ 3␈ελm␈↓ g␈εαin␈α a␈α di{eren␈α␈t
␈βα2␈↓ Q␈εj
␈βαP␈↓ ↓H␈εαway,␈αby␈αselecting
␈βα|␈↓ εB␈εe
␈ββα␈↓ ¬L␈ελm␈↓ εα␈εα=␈↓ ε0␈εα2␈↓ ε`␈ε⊗␈␈εα␈αλ1.␈↓
p␈εα(14)
␈ββ∧␈↓ εM␈ε
j
␈ββ∂␈↓ ¬j␈εj
␈ββM␈↓ ↓H␈εαIn␈αother␈αw␈α␈ords,␈αeach␈αmodulus␈αis␈αone␈αless␈αthan␈αa␈αpo␈α␈w␈α␈er␈αof␈α2.␈αSuch␈αa␈αchoice␈αof␈↓ ↓␈ελm
␈ββZ␈↓ ∨␈εj
␈ββx␈↓ ↓H␈εαoften␈α
mak␈α␈es␈αthe␈α
basic␈αarithmetic␈αoperations␈α
simpler,␈αbecause␈αit␈α
is␈αrelativ␈α␈ely␈α
easy
␈β∧≡␈↓ βW␈εe
␈β∧#␈↓ ↓H␈εαto␈α w␈α␈ork␈α modulo␈↓ βE␈εα2␈↓ βr␈ε⊗␈␈εα␈α¬1,␈α
as␈α in␈α ones'␈α
complemen␈α␈t␈α arithmetic.␈αWhen␈α
the␈α moduli␈α are
␈β∧'␈↓ βb␈ε
j
␈β∧N␈↓ ↓H␈εαchosen␈αλaccording␈αλto␈α this␈αλstrategy,␈α it␈α is␈αλhelpful␈αλto␈α relax␈αλthe␈αλcondition␈α 0␈ε⊗␈α
∀␈↓
'␈ελu␈↓
S␈εα<␈↓ ↓␈ελm
␈β∧\␈↓
;␈εj␈↓ ∨␈εj
␈β∧y␈↓ ↓H␈εαsligh␈α␈tly,␈αso␈αthat␈αw␈α␈e␈αrequire␈αonly
␈β¬P␈↓ ¬→␈εe␈↓ λ∨␈εe
␈β¬V␈↓ βc␈εα0␈ε⊗␈α
∀␈↓ ∧-␈ελu␈↓ ∧Y␈εα<␈↓ ¬π␈εα2␈↓ ¬/␈εα,␈↓ επ␈ελu␈↓ ε3␈ε⊗⊃␈↓ εa␈ελu␈↓ π↓␈εα(modulo␈↓ λ
␈εα2␈↓ λ=␈ε⊗␈␈εα␈αλ1).␈↓
p␈εα(15)
␈β¬Y␈↓ ¬$␈ε
j␈↓ λ*␈ε
j
␈β¬d␈↓ ∧A␈εj␈↓ ε≤␈εj
␈βε.␈↓ ¬A␈εe
␈βε3␈↓ ↓H␈εαTh␈α␈us,␈α⊂the␈α⊂value␈↓ βW␈ελu␈↓ ∧ ␈εα=␈↓ ∧>␈ελm␈↓ ∧z␈εα=␈↓ ¬/␈εα2␈↓ ¬b␈ε⊗␈␈εα␈α
1␈α⊂is␈α⊂allo␈α␈w␈α␈ed␈α⊂as␈α⊂an␈α⊂optional␈α⊂alternativ␈α␈e␈α∂to
␈βε7␈↓ ¬L␈ε
j
␈βεA␈↓ βl␈εj␈↓ ∧\␈εj
␈βε↑␈↓ ↓H␈ελu␈↓ ↓s␈εα=␈α
0,␈αsince␈α this␈α
does␈α
not␈α a{ect␈α
the␈α
validity␈α of␈α
Theorem␈α
C␈↓ λe␈εα,␈α
and␈α it␈α
means␈α
w␈α␈e␈α are
␈βεl␈↓ ↓\␈εj
␈βπ
␈↓ ↓H␈εαallo␈α␈wing␈↓ αQ␈ελu␈↓ αz␈εαto␈αλbe␈αλan␈α␈y␈↓ ∧∂␈ελe␈↓ ∧)␈εα-bit␈αλbinary␈αλn␈α␈um␈α␈ber.␈αUnder␈αλthis␈αλassumption,␈α the␈απoperations
␈βπ↔␈↓ αe␈εj␈↓ ∧≤␈εj
␈βπ5␈↓ ↓H␈εαof␈αaddition␈αand␈αm␈α␈ultiplication␈αmodulo␈↓ ε-␈ελm␈↓ εd␈εαbecome␈αthe␈αfollo␈α␈wing:
␈βπB␈↓ εK␈εj
␈βλ␈↓ 5␈εe
␈βλ∞␈↓ ∧ ␈ε↓~
␈βλ⊂␈↓ ∧∨␈ελu␈↓ ∧I␈εα+␈↓ ∧u␈ελv␈↓ ¬∩␈εα,␈↓ πV␈εαif␈↓ πx␈ελu␈↓ λ"␈εα+␈↓ λN␈ελv␈↓ λu␈εα<␈↓ #␈εα2␈↓ L␈εα;
␈βλ∀␈↓ @␈ε
j
␈βλ≤␈↓ ∧∨␈ε↓␈␈↓ ε0␈ε↓↓
␈βλ≥␈↓ ∧4␈εj␈↓ ¬¬␈εj␈↓ λ
␈εj␈↓ λ↑␈εj
␈βλ(␈↓ α↑␈ελu␈↓ βλ␈ε⊗λ␈↓ β4␈ελv␈↓ β[␈εα=␈↓
p␈εα(16)
␈βλ6␈↓ αs␈εj␈↓ βD␈εj␈↓ ε~␈εe␈↓ 5␈εe
␈βλ;␈↓ ∧-␈εα(␈↓ ∧9␈ελu␈↓ ∧c␈εα+␈↓ ¬∂␈ελv␈↓ ¬,␈εα)␈↓ ¬>␈εαmod␈↓ ελ␈εα2␈↓ εF␈εα+␈αλ1,␈↓ πV␈εαif␈↓ πx␈ελu␈↓ λ"␈εα+␈↓ λN␈ελv␈↓ λu␈ε⊗∃␈↓ #␈εα2␈↓ L␈εα.
␈βλ?␈↓ ε%␈ε
j␈↓ @␈ε
j
␈βλI␈↓ ∧N␈εj␈↓ ¬∨␈εj␈↓ λ
␈εj␈↓ λ↑␈εj
␈βλy␈↓ ¬6␈εe␈↓ π⊃␈εe
␈βλ␈␈↓ α↑␈ελu␈↓ βλ␈ε⊗␈
␈↓ β4␈ελv␈↓ β[␈εα=␈α
(␈↓ ∧∃␈ελu␈↓ ∧7␈ελv␈↓ ∧Z␈εαmod␈↓ ¬$␈εα2␈↓ ¬L␈εα)␈ε⊗␈α∩λ␈α∩b␈↓ ε.␈ελu␈↓ εP␈ελv␈↓ εm␈εα/␈↓ ε␈␈εα2␈↓ π(␈ε⊗c␈εα.␈↓
p␈εα(17)
␈β ↓␈↓ ¬A␈ε
j␈↓ π≤␈ε
j
␈β ␈↓ αs␈εj␈↓ βD␈εj␈↓ ∧*␈εj␈↓ ∧G␈εj␈↓ εC␈εj␈↓ ε`␈εj
␈β <␈↓ ↓H␈ε↓␈
␈β \␈↓ ↓V␈εαHere␈ε⊗␈α∞λ␈εα␈α∞and␈ε⊗␈α∂␈
␈εα␈α∞refer␈α∞to␈α∞the␈α∂operations␈α∞done␈α∞on␈α∂the␈α∞individual␈α∞componen␈α␈ts␈α∞of
␈β
π␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈εα.␈αε.␈αε.␈↓ α7␈εα,␈↓ αG␈ελu␈↓ αi␈εα)␈α
and␈α
(␈↓ βU␈ελv␈↓ βs␈εα,␈↓ ∧β␈εα.␈αε.␈αε.␈↓ ∧3␈εα,␈↓ ∧C␈ελv␈↓ ∧`␈εα)␈α∞when␈α
adding␈α
or␈α∞m␈α␈ultiplying,␈α
respectiv␈α␈ely,␈α∞using␈α
the
␈β
∪␈↓ βD␈ε↓↓
␈β
∀␈↓ ↓h␈ε¬1␈↓ α[␈εr␈↓ βe␈ε¬1␈↓ ∧S␈εr
␈β
2␈↓ ↓H␈εαcon␈α␈v␈α␈en␈α␈tion␈α
(15).␈↓ β`␈εαEquation␈α
(12)␈α∞may␈α
be␈α∞used␈α
for␈α∞subtraction.␈α⊂These␈α
operations
␈β
]␈↓ ↓H␈εαcan␈α∞be␈α∞performed␈α∞e}cien␈α␈tly␈α∞ev␈α␈en␈α∞when␈↓ εG␈ελm␈↓ π↓␈εαis␈α∞larger␈α∞than␈α∞the␈α∞computer's␈α∞w␈α␈ord
␈β
k␈↓ εe␈εj
␈β ␈↓ ↓H␈εαsize,␈α
since␈αit␈α
is␈α
a␈αsimple␈α
matter␈α
to␈αcompute␈α
the␈α
remainder␈αof␈α
a␈α
positiv␈α␈e␈αn␈α␈um␈α␈ber
␈β4␈↓ ↓H␈εαmodulo␈α∞a␈α∞po␈α␈w␈α␈er␈α∞of␈α∞2,␈α∂or␈α∞to␈α∞divide␈α∞a␈α∞n␈α␈um␈α␈ber␈α∞by␈α∞a␈α∂po␈α␈w␈α␈er␈α∞of␈α∞2.␈α∩In␈α∞(17)␈α∞w␈α␈e␈α∞hav␈α␈e
␈β←␈↓ ↓H␈εαthe␈αsum␈αof␈αthe␈α\upper␈αhalf"␈αand␈αthe␈α\lo␈α␈w␈α␈er␈αhalf"␈αof␈αthe␈αproduct,␈αas␈αdiscussed␈αin
␈β
␈↓ ↓H␈εαex␈α␈ercise␈α3.2.1.1↑8.
␈β2␈↓ ∧q␈εe
␈β7␈↓ α␈εαIf␈αmoduli␈α
of␈αthe␈αform␈↓ ∧←␈εα2␈↓ ¬∞␈ε⊗␈␈εα␈απ1␈α
are␈αto␈αbe␈α
used,␈αw␈α␈e␈αm␈α␈ust␈α
kno␈α␈w␈αunder␈αwhat␈α
con-
␈β;␈↓ ∧⎇␈ε
j
␈β↑␈↓ ∧␈εe␈↓ ↓␈εf
␈βc␈↓ ↓H␈εαditions␈α
the␈αn␈α␈um␈α␈ber␈↓ βy␈εα2␈↓ ∧≥␈ε⊗␈␈εα␈αε1␈α
is␈αrelativ␈α␈ely␈α
prime␈αto␈α
the␈αn␈α␈um␈α␈ber␈↓ λo␈εα2␈↓ ∃␈ε⊗␈␈εα␈αε1.␈αFortunately,
␈β
∞␈↓ ↓H␈εαthere␈αis␈αa␈αv␈α␈ery␈αsimple␈αrule,
␈β
e␈↓ ∧⎇␈εe␈↓ ¬q␈εf␈↓ π≠␈ε¬gcd␈↓ πF␈ε¬(␈↓ πP␈εe␈↓ π[␈ε¬,␈↓ πc␈εf␈↓ πq␈ε¬)
␈β
k␈↓ ∧)␈εαgcd␈↓ ∧←␈εα(␈↓ ∧k␈εα2␈↓ ¬⊃␈ε⊗␈␈εα␈αλ1,␈↓ ¬←␈εα2␈↓ επ␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ π ␈εα2␈↓ λβ␈ε⊗␈␈εα␈αλ1,␈↓
p␈εα(18)
␈β∞B␈↓ ¬>␈εe␈↓ εm␈εf
␈β∞H␈↓ ↓H␈εαwhich␈α
states␈αin␈α
particular␈αthat␈↓ ¬,␈εα2␈↓ ¬P␈ε⊗␈␈εα␈αε1␈ε∂␈α
and␈↓ ε[␈εα2␈↓ π↓␈ε⊗␈␈εα␈αε1␈ε∂␈α
are␈αrelativ␈α␈ely␈α
prime␈α
if␈αand␈α
only
␈β∞s␈↓ ↓H␈ε∂if␈↓ ↓g␈ελe␈↓ ↓␈␈ε∂and␈↓ αC␈ελf␈↓ α↑␈ε∂are␈α
relativ␈α␈ely␈α
prime␈εα.␈αEquation␈α
(18)␈α
follo␈α␈ws␈α
from␈α
Euclid's␈α
algorithm␈α and
␈β∂≡␈↓ ↓H␈εαthe␈αiden␈α␈tity
␈β∂I␈↓ ∧9␈εe␈↓ ε¬␈εf␈↓ π/␈εe␈↓ π@␈ε¬mod␈↓ π{␈εf
␈β∂P␈↓ ∧≠␈εα(␈↓ ∧'␈εα2␈↓ ∧M␈ε⊗␈␈εα␈αλ1)␈↓ ¬≥␈εαmod␈↓ ¬g␈εα(␈↓ ¬s␈εα2␈↓ ε≠␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ π≥␈εα2␈↓ λ⊃␈ε⊗␈␈εα␈αλ1.␈↓
p␈εα(19)
␈β⊂∃␈↓ λ\␈ε¬35␈↓
E␈ε¬34
␈β⊂~␈↓ ↓H␈εα(See␈α
ex␈α␈ercise␈α
6.)␈αTh␈α␈us␈α
w␈α␈e␈α
could␈α
choose␈αfor␈α
example␈↓ πe␈ελm␈↓ λ≤␈εα=␈↓ λJ␈εα2␈↓ λ}␈ε⊗␈␈εα␈α¬1,␈↓ N␈ελm␈↓
¬␈εα=␈↓
3␈εα2␈↓
g␈ε⊗␈␈εα␈α¬1,
␈β⊂(␈↓ λβ␈ε¬1␈↓ l␈ε¬2
␈β⊂A␈↓ αB␈ε¬3␈α↓3␈↓ ∧9␈ε¬31␈↓ ε0␈ε¬29
␈β⊂F␈↓ ↓H␈ελm␈↓ α↓␈εα=␈↓ α0␈εα2␈↓ αh␈ε⊗␈␈εα␈α 1,␈↓ β>␈ελm␈↓ βw␈εα=␈↓ ∧'␈εα2␈↓ ∧←␈ε⊗␈␈εα␈αλ1,␈↓ ¬5␈ελm␈↓ ¬n␈εα=␈↓ ε≡␈εα2␈↓ εU␈ε⊗␈␈εα␈α 1,␈α
if␈α∞w␈α␈e␈α
had␈α
a␈α
computer␈α
with␈α
w␈α␈ord
␈β⊂S␈↓ ↓f␈ε¬3␈↓ β]␈ε¬4␈↓ ¬S␈ε¬5
␈β⊂l␈↓ α≡␈ε¬3␈α↓5
␈β⊂q␈↓ ↓H␈εαsize␈↓ α␈εα2␈↓ α;␈εα;␈α
this␈α
w␈α␈ould␈α
permit␈α
e}cien␈α␈t␈α
addition,␈α
subtraction,␈α
and␈α
m␈α␈ultiplication␈αof
␈β⊃↔␈↓ π∂␈ε¬1␈α↓61
␈β⊃≤␈↓ ↓H␈εαin␈α␈tegers␈αin␈αa␈αrange␈αof␈αsize␈↓ ∧e␈ελm␈↓ ¬∩␈ελm␈↓ ¬?␈ελm␈↓ ¬l␈ελm␈↓ ε→␈ελm␈↓ εO␈εα>␈↓ ε⎇␈εα2␈↓ π;␈εα.
␈β⊃)␈↓ ¬β␈ε¬1␈↓ ¬0␈ε¬2␈↓ ¬]␈ε¬3␈↓ ε
␈ε¬4␈↓ ε7␈ε¬5
␈β∪(
␈β↓Y␈↓ ↓H␈εα270␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.2
␈βα(␈↓ α␈εαAs␈α∩w␈α␈e␈α∩hav␈α␈e␈α⊃already␈α∩observ␈α␈ed,␈α∀the␈α⊃operations␈α∩of␈α∩con␈α␈v␈α␈ersion␈α∩to␈α∩and␈α⊃from
␈βαS␈↓ ↓H␈εαmodular␈α⊃represen␈α␈tation␈α⊂are␈α⊃v␈α␈ery␈α⊃importan␈α␈t.␈α≠If␈α⊃w␈α␈e␈α⊃are␈α⊃giv␈α␈en␈α⊃a␈α⊃n␈α␈um␈α␈ber␈↓
U␈ελu␈↓
j␈εα,␈α∩its
␈βα}␈↓ ↓H␈εαmodular␈α
represen␈α␈tation␈α
(␈↓ ∧O␈ελu␈↓ ∧r␈εα,␈↓ ¬α␈εα.␈αε.␈αε.␈↓ ¬2␈εα,␈↓ ¬B␈ελu␈↓ ¬d␈εα)␈α
may␈α
be␈α
obtained␈α
by␈α
dividing␈↓ V␈ελu␈↓ y␈εαby␈↓
.␈ελm␈↓
[␈εα,␈↓
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈ββ␈↓ ∧c␈ε¬1␈↓ ¬V␈εr␈↓
M␈ε¬1
␈ββ*␈↓ ↓H␈ελm␈↓ αβ␈εαand␈α∂saving␈α⊂the␈α∂remainders.␈α⊗A␈α∂possibly␈α⊂more␈α∂attractiv␈α␈e␈α⊂procedure,␈α⊂if␈↓
c␈ελu␈↓ λ␈εα=
␈ββ7␈↓ ↓f␈εr
␈ββU␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓⎇␈ελv␈↓ αX␈εα.␈αε.␈αε.␈↓ βλ␈ελv␈↓ β&␈εα)␈↓ β>␈εα,␈αis␈αto␈αevaluate␈αthe␈αpolynomial
␈ββb␈↓ ↓c␈εm␈↓ α
␈εm␈↓ α'␈ε→␈␈ε¬1␈↓ β_␈ε¬0␈↓ β2␈εb
␈β∧
␈↓ ∧>␈ε↓␈␈↓ πA␈ε↓↓
␈β∧,␈↓ ∧L␈εα.␈αε.␈αε.␈↓ ∧|␈εα(␈↓ ¬λ␈ελv␈↓ ¬2␈ελb␈↓ ¬H␈εα+␈↓ ¬t␈ελv␈↓ εI␈εα)␈↓ εU␈ελb␈↓ εk␈εα+␈↓ π↔␈ε⊗↓␈αε↓␈αε↓␈↓ πU␈ελb␈↓ πl␈εα+␈↓ λ_␈ελv
␈β∧:␈↓ ¬_␈εm␈↓ ε∧␈εm␈↓ ε≡␈ε→␈␈ε¬1␈↓ λ(␈ε¬0
␈β¬∧␈↓ ↓H␈εαusing␈α modular␈α
arithmetic.␈αWhen␈↓ ¬L␈ελb␈↓ ¬d␈εα=␈α
2␈α
and␈α when␈α
the␈α modulus␈↓ ⊗␈ελm␈↓ K␈εαhas␈α
the␈α special
␈β¬⊃␈↓ 4␈εj
␈β¬*␈↓ α-␈εe
␈β¬/␈↓ ↓H␈εαform␈↓ α≠␈εα2␈↓ αI␈ε⊗␈␈εα␈α∧1,␈αboth␈α of␈α
these␈α methods␈α
reduce␈α to␈α
quite␈α
a␈α simple␈α
procedure:␈α
Consider
␈β¬3␈↓ α8␈ε
j
␈β¬Z␈↓ ↓H␈εαthe␈αbinary␈αrepresen␈α␈tation␈αof␈↓ ¬
␈ελu␈↓ ¬.␈εαwith␈αblocks␈αof␈↓ π_␈ελe␈↓ π?␈εαbits␈αgrouped␈αtogether,
␈β¬h␈↓ π%␈εj
␈βε,␈↓ ∧}␈εt␈↓ ε≠␈εt␈↓ ε%␈ε→␈␈ε¬1
␈βε2␈↓ β⎇␈ελu␈↓ ∧≥␈εα=␈↓ ∧K␈ελa␈↓ ∧f␈ελA␈↓ ¬⊂␈εα+␈↓ ¬<␈ελa␈↓ εβ␈ελA␈↓ εY␈εα+␈↓ π¬␈ε⊗↓␈αε↓␈αε↓␈↓ π7␈εα+␈↓ πc␈ελa␈↓ λα␈ελA␈↓ λ"␈εα+␈↓ λN␈ελa␈↓ λm␈εα,␈↓
p␈εα(20)
␈βε?␈↓ ∧[␈εt␈↓ ¬M␈εt␈↓ ¬X␈ε→␈␈ε¬1␈↓ πs␈ε¬1␈↓ λ←␈ε¬0
␈βπ∧␈↓ β∩␈εe␈↓ ¬.␈εe
␈βπ
␈↓ ↓H␈εαwhere␈↓ α0␈ελA␈↓ αR␈εα=␈↓ β␈εα2␈↓ β4␈εαand␈α0␈ε⊗␈α
∀␈↓ ∧D␈ελa␈↓ ∧n␈εα<␈↓ ¬≤␈εα2␈↓ ¬P␈εαfor␈α0␈ε⊗␈α
∀␈↓ εR␈ελk␈↓ εn␈ε⊗∀␈↓ π≤␈ελt␈↓ π)␈εα.␈αThen
␈βπ
␈↓ β≥␈ε
j␈↓ ¬9␈ε
j
␈βπ↔␈↓ ∧U␈εk
␈βπ[␈↓ λI␈εe
␈βπa␈↓ β9␈ελu␈↓ βX␈ε⊗⊃␈↓ ∧ε␈ελa␈↓ ∧*␈εα+␈↓ ∧V␈ελa␈↓ ¬$␈εα+␈↓ ¬P␈ε⊗↓␈αε↓␈αε↓␈↓ εα␈εα+␈↓ ε.␈ελa␈↓ εU␈εα+␈↓ π↓␈ελa␈↓ π+␈εα(modulo␈↓ λ7␈εα2␈↓ λg␈ε⊗␈␈εα␈αλ1),␈↓
p␈εα(21)
␈βπd␈↓ λT␈ε
j
␈βπo␈↓ ∧↔␈εt␈↓ ∧g␈εt␈↓ ∧q␈ε→␈␈ε¬1␈↓ ε?␈ε¬1␈↓ π∩␈ε¬0
␈βλ9␈↓ ↓H␈εαsince␈↓ α≥␈ελA␈↓ α?␈ε⊗⊃␈εα␈α
1,␈α so␈α w␈α␈e␈α
may␈α obtain␈↓ ¬(␈ελu␈↓ ¬S␈εαby␈α adding␈α the␈↓ π2␈ελe␈↓ πL␈εα-bit␈α n␈α␈um␈α␈bers␈↓ ~␈ελa␈↓ :␈ε⊗λ␈↓ b␈ε⊗↓␈αε↓␈αε↓␈↓
⊂␈ε⊗λ␈↓
8␈ελa␈↓
[␈ε⊗λ␈↓ β␈ελa␈↓ "␈εα,
␈βλF␈↓ ¬<␈εj␈↓ π?␈εj␈↓ +␈εt␈↓
I␈ε¬1␈↓ ∀␈ε¬0
␈βλd␈↓ ↓H␈εαusing␈α
(16).␈α⊃This␈α
process␈α∞is␈α
similar␈α∞to␈α
the␈α∞familiar␈α
device␈α∞of␈α
\casting␈α∞out␈α
nines"
␈β ∂␈↓ ↓H␈εαthat␈αdetermines␈↓ βL␈ελu␈↓ βg␈εαmod␈↓ ∧1␈εα9␈αwhen␈↓ ¬-␈ελu␈↓ ¬O␈εαis␈αexpressed␈αin␈αthe␈αdecimal␈αsystem.
␈β ;␈↓ α␈εαCon␈α␈v␈α␈ersion␈αλback␈α from␈αλmodular␈αλform␈αλto␈αλpositional␈α notation␈αλis␈αλsomewhat␈αλmore
␈β f␈↓ ↓H␈εαdi}cult.␈αIt␈α is␈α
in␈α␈teresting␈α in␈α this␈α
regard␈α to␈α
mak␈α␈e␈α a␈α few␈α
side␈α remarks␈α
about␈α the␈α way
␈β
⊃␈↓ ↓H␈εαcomputers␈αλmak␈α␈e␈α us␈αλchange␈αλour␈α viewpoin␈α␈t␈αλto␈α␈wards␈α mathematical␈αλproofs:␈α
Theorem
␈β
<␈↓ ↓H␈εαC␈α
tells␈αus␈α
that␈α
the␈α
con␈α␈v␈α␈ersion␈α
from␈α
(␈↓ ε∞␈ελu␈↓ ε1␈εα,␈↓ εA␈εα.␈αε.␈αε.␈↓ εq␈εα,␈↓ π↓␈ελu␈↓ π#␈εα)␈αto␈↓ πh␈ελu␈↓ λ␈εαis␈α
possible,␈α
and␈α
t␈α␈w␈α␈o␈αproofs
␈β
J␈↓ ε"␈ε¬1␈↓ π∃␈εr
␈β
h␈↓ ↓H␈εαare␈αgiv␈α␈en.␈αThe␈α|rst␈αproof␈αw␈α␈e␈αconsidered␈αis␈αa␈αclassical␈αone␈αthat␈αmak␈α␈es␈αuse␈αonly␈αof
␈β∪␈↓ ↓H␈εαv␈α␈ery␈αsimple␈αconcepts,␈αnamely␈αthe␈αfacts␈αthat
␈βJ␈↓ ↓j␈εαi)␈↓ α␈εαan␈α␈y␈αn␈α␈um␈α␈ber␈αthat␈αis␈αa␈αm␈α␈ultiple␈αof␈↓ ε⊗␈ελm␈↓ εN␈εαand␈αof␈↓ π=␈ελm␈↓ πj␈εα,␈↓ π␈␈εα.␈αε.␈αε.␈↓ λ/␈εα,␈↓ λE␈ελm␈↓ λq␈εα,␈αm␈α␈ust␈αbe␈αa␈αm␈α␈ultiple
␈βX␈↓ ε4␈ε¬1␈↓ π[␈ε¬2␈↓ λc␈εr
␈βu␈↓ α␈εαof␈↓ α6␈ελm␈↓ αc␈ελm␈↓ β⊗␈εα.␈αε.␈αε.␈↓ βF␈ελm␈↓ β}␈εαwhen␈αthe␈↓ ¬~␈ελm␈↓ ¬F␈εα's␈αare␈αpairwise␈αrelativ␈α␈ely␈αprime;␈αand
␈ββ␈↓ αU␈ε¬1␈↓ βα␈ε¬2␈↓ βe␈εr␈↓ ¬8␈εj
␈β-␈↓ ↓`␈εαii)␈↓ α␈εαif␈↓ α.␈ελm␈↓ α[␈εαthings␈αare␈αput␈α
in␈α␈to␈↓ ¬∂␈ελm␈↓ ¬;␈εαbo␈α␈x␈α␈es␈α
with␈αno␈α
t␈α␈w␈α␈o␈αthings␈α
in␈αthe␈αsame␈α
bo␈α␈x,␈αthen
␈βX␈↓ α␈εαthere␈αm␈α␈ust␈αbe␈αone␈αin␈αeach␈αbo␈α␈x.
␈β
⊂␈↓ ↓H␈εαBy␈απtraditional␈απnotions␈αλof␈απmathematical␈απaesthetics,␈α this␈απis␈απno␈απdoubt␈αλthe␈απnicest␈απproof
␈β
;␈↓ ↓H␈εαof␈αTheorem␈αC;␈αbut␈αfrom␈αa␈αcomputational␈αstandpoin␈α␈t␈αit␈αis␈αcompletely␈αw␈α␈orthless.
␈β
f␈↓ ↓H␈εαIt␈α
amoun␈α␈ts␈α∞to␈α∞saying,␈α∞\Try␈↓ ¬π␈ελu␈↓ ¬*␈εα=␈↓ ¬[␈ελa␈↓ ¬l␈εα,␈↓ ε¬␈ελa␈↓ ε ␈εα+␈α 1,␈↓ εw␈εα.␈αε.␈αε.␈↓ π.␈εαun␈α␈til␈α∞y␈α␈ou␈α∞|nd␈α
a␈α∞value␈α∞for␈α
which
␈β∞⊃␈↓ ↓H␈ελu␈↓ ↓g␈ε⊗⊃␈↓ α∃␈ελu␈↓ αB␈εα(modulo␈↓ βN␈ελm␈↓ β{␈εα),␈↓ ∧≥␈εα.␈αε.␈αε.␈↓ ∧M␈εα,␈↓ ∧c␈ελu␈↓ ¬β␈ε⊗⊃␈↓ ¬1␈ελu␈↓ ¬]␈εα(modulo␈↓ εi␈ελm␈↓ π∃␈εα)."
␈β∞∨␈↓ α*␈ε¬1␈↓ βm␈ε¬1␈↓ ¬E␈εr␈↓ ππ␈εr
␈β∞=␈↓ α␈εαThe␈α
second␈α
proof␈αof␈α
Theorem␈α
C␈α
is␈αmore␈α
explicit;␈α
it␈α
sho␈α␈ws␈α
ho␈α␈w␈α
to␈αcompute
␈β∞h␈↓ ↓H␈ελr␈↓ ↓c␈εαnew␈αconstan␈α␈ts␈↓ βK␈ελM␈↓ βx␈εα,␈↓ ∧∞␈εα.␈αε.␈αε.␈↓ ∧>␈εα,␈↓ ∧T␈ελM␈↓ ¬␈εα,␈αand␈αto␈αget␈αthe␈αsolution␈αin␈αterms␈αof␈αthese␈αconstan␈α␈ts
␈β∞v␈↓ βj␈ε¬1␈↓ ∧s␈εr
␈β∂∪␈↓ ↓H␈εαby␈α
form␈α␈ula␈α(9).␈αThis␈αproof␈α
uses␈αmore␈αcomplicated␈αconcepts␈α(for␈α
example,␈αEuler's
␈β∂?␈↓ ↓H␈εαtheorem),␈αλbut␈αλit␈απis␈αλm␈α␈uch␈απmore␈αλsatisfactory␈απfrom␈αλa␈απcomputational␈αλstandpoin␈α␈t,␈αλsince
␈β∂j␈↓ ↓H␈εαthe␈αconstan␈α␈ts␈↓ β$␈ελM␈↓ βR␈εα,␈↓ βh␈εα.␈αε.␈αε.␈↓ ∧_␈εα,␈↓ ∧.␈ελM␈↓ ∧f␈εαneed␈αto␈αbe␈αdetermined␈αonly␈αonce.␈αOn␈αthe␈αother␈αhand,
␈β∂w␈↓ βC␈ε¬1␈↓ ∧M␈εr
␈β⊂∃␈↓ ↓H␈εαthe␈α determination␈α
of␈↓ ∧⊂␈ελM␈↓ ∧F␈εαby␈α
Eq.␈α (8)␈α
is␈α certainly␈α
not␈α
trivial,␈α
since␈α the␈α
evaluation␈α of
␈β⊂"␈↓ ∧/␈εj
␈β⊂@␈↓ ↓H␈εαEuler's␈↓ α=␈ελ⎇␈↓ αU␈εα-function␈α requires,␈α
in␈α
general,␈α
the␈α
factorization␈α of␈↓ λY␈ελm␈↓ ∞␈εαin␈α␈to␈α
prime␈α po␈α␈w␈α␈ers.
␈β⊂N␈↓ λw␈εj
␈β⊂k␈↓ ↓H␈εαFurthermore,␈↓ β$␈ελM␈↓ β[␈εαis␈α
lik␈α␈ely␈αto␈α
be␈α
a␈αterribly␈α
large␈α
n␈α␈um␈α␈ber,␈αev␈α␈en␈α
if␈αw␈α␈e␈α
compute␈α
only
␈β⊂w␈↓ ∧2␈ε↓␈␈↓ ∀␈ε↓↓
␈β⊂y␈↓ βC␈εj
␈β⊃↔␈↓ ↓H␈εαthe␈απquan␈α␈tity␈↓ β∞␈ελM␈↓ β@␈εαmod␈↓ ∧
␈ελm␈↓ ∧@␈εαwhich␈αλwill␈απw␈α␈ork␈αλjust␈αλas␈αλw␈α␈ell␈αλas␈↓ λ⊂␈ελM␈↓ λD␈εαin␈αλ(9)␈↓ "␈εα.␈αSince␈↓
⊃␈ελM␈↓
C␈εαmod␈↓
␈ελm
␈β⊃$␈↓ β-␈εj␈↓ λ/␈εj␈↓
0␈εj
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α ARIT␈α␈HMET␈α␈IC␈↓
v␈εα271
␈βα&␈↓ ↓H␈εαis␈α
uniquely␈α
determined␈α
if␈α
(7)␈α
is␈α
to␈α
be␈α
satis|ed␈α
(because␈α of␈α
the␈α
Chinese␈α
Remainder
␈βαQ␈↓ ↓H␈εαTheorem),␈αw␈α␈e␈αcan␈αsee␈αthat,␈αin␈αan␈α␈y␈αev␈α␈en␈α␈t,␈αEq.␈α(9)␈αrequires␈αa␈αlot␈αof␈αhigh-precision
␈βα⎇␈↓ ↓H␈εαcalculation,␈α∂and␈α∂such␈α∂calculation␈α∂is␈α∂just␈α∞what␈α∂w␈α␈e␈α∂wished␈α∂to␈α∂av␈α␈oid␈α∂by␈α∞modular
␈ββ(␈↓ ↓H␈εαarithmetic␈αin␈αthe␈α|rst␈αplace.
␈ββS␈↓ α␈εαSo␈α∂w␈α␈e␈α∞need␈α∂an␈α∞ev␈α␈en␈ε∂␈α∂better␈εα␈α∞proof␈α∂of␈α∞Theorem␈α∂C␈α∞if␈α∂w␈α␈e␈α∞are␈α∂going␈α∞to␈α∂hav␈α␈e␈α∞a
␈ββ}␈↓ ↓H␈εαreally␈α∞usable␈α∞method␈α∞of␈α∞con␈α␈v␈α␈ersion␈α∞from␈α∂(␈↓ εe␈ελu␈↓ πλ␈εα,␈↓ π_␈εα.␈αε.␈αε.␈↓ πH␈εα,␈↓ πX␈ελu␈↓ πy␈εα)␈α∂to␈↓ λB␈ελu␈↓ λW␈εα.␈α∪Such␈α∞a␈α∞method␈α∞was
␈β∧
␈↓ 0␈ε↓␈␈↓ M␈ε↓↓
␈β∧␈↓ εy␈ε¬1␈↓ πl␈εr
␈β∧!␈↓ ?␈εr
␈β∧*␈↓ ↓H␈εαsuggested␈αby␈α
H.␈αL.␈α
Garner␈αin␈α
1958;␈αit␈α
can␈αbe␈α
carried␈αout␈α
using␈↓ g␈εαconstan␈α␈ts␈↓ π␈ελc
␈β∧7␈↓ ∀␈εi␈↓ ∨␈εj
␈β∧<␈↓ >␈ε¬2
␈β∧U␈↓ ↓H␈εαfor␈α1␈ε⊗␈α
∀␈↓ αJ␈ελi␈↓ αb␈εα<␈↓ β⊂␈ελj␈↓ β*␈ε⊗∀␈↓ βX␈ελr␈↓ βh␈εα,␈αwhere
␈β¬,␈↓ ∧l␈ελc␈↓ ¬_␈ελm␈↓ ¬L␈ε⊗⊃␈εα␈α
1␈α.(modulo␈↓ πF␈ελm␈↓ πr␈εα).␈↓
p␈εα(22)
␈β¬9␈↓ ∧y␈εi␈↓ ¬¬␈εj␈↓ ¬7␈εi␈↓ πe␈εj
␈βεβ␈↓ ↓H␈εαThese␈αεconstan␈α␈ts␈↓ βC␈ελc␈↓ βo␈εαare␈αεreadily␈αεcomputed␈αεusing␈αεEuclid's␈αεalgorithm,␈απsince␈αεAlgorithm
␈βε⊂␈↓ βP␈εi␈↓ β[␈εj
␈βε.␈↓ ↓H␈εα4.5.2X␈αdetermines␈↓ βl␈ελa␈↓ ∧ ␈εαand␈↓ ∧N␈ελb␈↓ ∧h␈εαsuch␈αthat␈↓ εε␈ελa␈↓ ε_␈ελm␈↓ εI␈εα+␈↓ εt␈ελb␈↓ πα␈ελm␈↓ π8␈εα=␈↓ πf␈εαgcd␈↓ λ≤␈εα(␈↓ λ(␈ελm␈↓ λR␈εα,␈↓ λb␈ελm␈↓ ∞␈εα)␈α
=␈α
1␈αand␈αw␈α␈e␈αmay
␈βε<␈↓ ε7␈εi␈↓ π!␈εj␈↓ λG␈εi␈↓ ↓␈εj
␈βεT␈↓ λ3␈εe
␈βεY␈↓ ↓H␈εαtak␈α␈e␈↓ α↔␈ελc␈↓ αH␈εα=␈↓ αw␈ελa␈↓ β ␈εα.␈α∞When␈α
the␈αmoduli␈α
hav␈α␈e␈α
the␈αspecial␈α
form␈↓ λ!␈εα2␈↓ λR␈ε⊗␈␈εα␈αλ1,␈α
a␈α
simple␈αmethod
␈βε]␈↓ λ>␈ε
j
␈βεg␈↓ α$␈εi␈↓ α0␈εj
␈βπ¬␈↓ ↓H␈εαof␈αdetermining␈↓ β:␈ελc␈↓ βk␈εαis␈αgiv␈α␈en␈αin␈αex␈α␈ercise␈α6.
␈βπ∩␈↓ βG␈εi␈↓ βR␈εj
␈βπ0␈↓ α␈εαOnce␈αthe␈↓ β&␈ελc␈↓ βX␈εαhav␈α␈e␈αbeen␈αdetermined␈αsatisfying␈α(22),␈αw␈α␈e␈αcan␈αset
␈βπ=␈↓ β3␈εi␈↓ β?␈εj
␈βλβ␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈↓ β/␈ελu␈↓ βX␈εαmod␈↓ ∧"␈ελm␈↓ ∧O␈εα,
␈βλ⊂␈↓ αi␈ε¬1␈↓ βD␈ε¬1␈↓ ∧A␈ε¬1
␈βλ.␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈εα␈α
(␈↓ β;␈ελu␈↓ βf␈ε⊗␈␈↓ ∧∩␈ελv␈↓ ∧0␈εα)␈↓ ∧B␈ελc␈↓ ∧r␈εαmod␈↓ ¬<␈ελm␈↓ ¬i␈εα,
␈βλ:␈↓ β/␈ε↓␈␈↓ ¬L␈ε↓↓
␈βλ;␈↓ αi␈ε¬2␈↓ βP␈ε¬2␈↓ ∧"␈ε¬1␈↓ ∧O␈ε¬1␈α↓2␈↓ ¬[␈ε¬2
␈βλY␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈↓ β=␈εα(␈↓ βI␈ελu␈↓ βt␈ε⊗␈␈↓ ∧ ␈ελv␈↓ ∧>␈εα)␈↓ ∧P␈ελc␈↓ ¬α␈ε⊗␈␈↓ ¬.␈ελv␈↓ ¬`␈ελc␈↓ ε⊂␈εαmod␈↓ εZ␈ελm␈↓ ππ␈εα,
␈βλg␈↓ αi␈ε¬3␈↓ β↑␈ε¬3␈↓ ∧0␈ε¬1␈↓ ∧]␈ε¬1␈α↓3␈↓ ¬>␈ε¬2␈↓ ¬m␈ε¬2␈α↓3␈↓ εy␈ε¬3
␈βλj␈↓
p␈εα(23)
␈β β␈↓ αm␈εα.
␈β ⊃␈↓ αm␈εα.
␈β ∨␈↓ αm␈εα.
␈β +␈↓ β/␈ε↓␈␈↓ λ≠␈ε↓↓
␈β K␈↓ αZ␈ελv␈↓ β↓␈ε⊗ ␈↓ β=␈εα.␈αε.␈αε.␈↓ βm␈εα((␈↓ ∧¬␈ελu␈↓ ∧/␈ε⊗␈␈↓ ∧[␈ελv␈↓ ∧y␈εα)␈↓ ¬␈ελc␈↓ ¬<␈ε⊗␈␈↓ ¬h␈ελv␈↓ εε␈εα)␈↓ ε_␈ελc␈↓ εI␈ε⊗␈␈↓ εu␈ε⊗↓␈αε↓␈αε↓␈↓ π'␈ε⊗␈␈↓ πS␈ελv␈↓ λ/␈ελc␈↓ ≠␈εαmod␈↓ e␈ελm␈↓
⊃␈εα.
␈β X␈↓ αj␈εr␈↓ ∧~␈εr␈↓ ∧k␈ε¬1␈↓ ¬_␈ε¬1␈↓ ¬'␈εr␈↓ ¬x␈ε¬2␈↓ ε%␈ε¬2␈↓ ε4␈εr␈↓ πc␈εr␈↓ πp␈ε→␈␈ε¬1␈↓
∧␈εr
␈β Y␈↓ λ<␈ε¬(␈↓ λF␈εr␈↓ λS␈ε→␈␈ε¬1)␈↓ λ␈εr
␈β
␈↓ ↓H␈εαThen
␈β
L␈↓ β#␈ελu␈↓ βC␈εα=␈↓ βq␈ελv␈↓ ∧∞␈ελm␈↓ ∧k␈εα.␈αε.␈αε.␈↓ ¬≠␈ελm␈↓ ¬H␈ελm␈↓ ¬⎇␈εα+␈↓ ε)␈ε⊗↓␈αε↓␈αε↓␈↓ ε[␈εα+␈↓ ππ␈ελv␈↓ π%␈ελm␈↓ πR␈ελm␈↓ λπ␈εα+␈↓ λ3␈ελv␈↓ λR␈ελm␈↓ ε␈εα+␈↓ 2␈ελv␈↓
p␈εα(24)
␈β
Y␈↓ ∧↓␈εr␈↓ ∧-␈εr␈↓ ∧:␈ε→␈␈ε¬1␈↓ ¬:␈ε¬2␈↓ ¬g␈ε¬1␈↓ π↔␈ε¬3␈↓ πD␈ε¬2␈↓ πq␈ε¬1␈↓ λC␈ε¬2␈↓ λp␈ε¬1␈↓ B␈ε¬1
␈β⊃␈↓ ↓H␈εαis␈αa␈αn␈α␈um␈α␈ber␈αsatisfying␈αthe␈αconditions
␈βh␈↓ β~␈εα0␈ε⊗␈α
∀␈↓ βd␈ελu␈↓ ∧β␈εα<␈↓ ∧1␈ελm␈↓ ∧Q␈εα,␈↓ ¬)␈ελu␈↓ ¬I␈ε⊗⊃␈↓ ¬w␈ελu␈↓ ε"␈εα(modulo␈↓ π.␈ελm␈↓ πZ␈εα)␈↓ λ.1␈ε⊗␈α
∀␈↓ λx␈ελj␈↓ ∪␈ε⊗∀␈↓ A␈ελr␈↓ P␈εα.␈↓
p␈εα(25)
␈βu␈↓ ε␈εj␈↓ πM␈εj
␈β?␈↓ ↓H␈εα(See␈α∂ex␈α␈ercise␈α⊂8;␈α∩another␈α⊂way␈α⊂of␈α⊂rewriting␈α∂(23)␈α⊂that␈α⊂does␈α⊂not␈α⊂in␈α␈v␈α␈olv␈α␈e␈α⊂as␈α∂man␈α␈y
␈βj␈↓ ↓H␈εαauxiliary␈αconstan␈α␈ts␈α
is␈αgiv␈α␈en␈αin␈αex␈α␈ercise␈α7.)␈α↔Equation␈α(24)␈αis␈αa␈ε∂␈αmix␈α␈ed-radix␈α
repre-
␈β
∃␈↓ ↓H␈ε∂sen␈α␈tation␈εα␈αof␈↓ β␈ελu␈↓ β!␈εα,␈αwhich␈αmay␈αbe␈αcon␈α␈v␈α␈erted␈αto␈αbinary␈αor␈αdecimal␈αnotation␈αusing␈αthe
␈β
@␈↓ ↓H␈εαmethods␈αof␈α
Section␈α
4.4.␈α∂If␈α0␈ε⊗␈α∀␈↓ ¬:␈ελu␈↓ ¬[␈εα<␈↓ ε␈ελm␈↓ ε7␈εαis␈α
not␈α
the␈α
desired␈α
range,␈α
an␈αappropriate
␈β
l␈↓ ↓H␈εαm␈α␈ultiple␈αof␈↓ α␈␈ελm␈↓ β*␈εαcan␈αbe␈αadded␈αor␈αsubtracted␈αafter␈αthe␈αcon␈α␈v␈α␈ersion␈αprocess.
␈β∞↔␈↓ α␈εαThe␈α
advan␈α␈tage␈α
of␈α
the␈α
computation␈α
sho␈α␈wn␈α
in␈α
(23)␈α
is␈α
that␈α
the␈α
calculation␈α
of
␈β∞B␈↓ ↓H␈ελv␈↓ ↓t␈εαcan␈α∞be␈α∂done␈α∂using␈α∂only␈α∂arithmetic␈α∂mod␈↓ ε|␈ελm␈↓ π'␈εα,␈α⊂which␈α∂is␈α∂already␈α∂built␈α∂in␈α␈to␈α∞the
␈β∞P␈↓ ↓W␈εj␈↓ π~␈εj
␈β∞m␈↓ ↓H␈εαmodular␈α
arithmetic␈α
algorithms.␈α⊂Furthermore,␈α∞(23)␈α
allo␈α␈ws␈α
parallel␈α
computation:
␈β∂→␈↓ ↓H␈εαWe␈α
can␈αstart␈α
with␈α
(␈↓ ∧↓␈ελv␈↓ ∧∨␈εα,␈↓ ∧/␈εα.␈αε.␈αε.␈↓ ∧←␈εα,␈↓ ∧o␈ελv␈↓ ¬
␈εα)␈ε⊗␈α ␈εα␈α(␈↓ ¬`␈ελu␈↓ ε ␈εαmod␈↓ εS␈ελm␈↓ π␈εα,␈↓ π⊂␈εα.␈αε.␈αε.␈↓ π@␈εα,␈↓ πP␈ελu␈↓ πw␈εαmod␈↓ λA␈ελm␈↓ λm␈εα),␈α
then␈α
at␈α
time␈↓
c␈ελj␈↓ ␈εαfor
␈β∂&␈↓ ∧⊃␈ε¬1␈↓ ∧␈␈εr␈↓ ¬t␈ε¬1␈↓ εq␈ε¬1␈↓ πd␈εr␈↓ λ`␈εr
␈β∂D␈↓ ↓H␈εα1␈ε⊗␈α⊂∀␈↓ α≡␈ελj␈↓ α?␈εα<␈↓ αs␈ελr␈↓ β∪␈εαw␈α␈e␈α⊂sim␈α␈ultaneously␈α⊂set␈↓ ε␈ελv␈↓ ε/␈ε⊗ ␈εα␈α⊂(␈↓ εo␈ελv␈↓ π_␈ε⊗␈␈↓ πG␈ελv␈↓ πd␈εα)␈↓ πv␈ελc␈↓ λ$␈εαmod␈↓ λn␈ελm␈↓ +␈εαfor␈↓ g␈ελj␈↓
λ␈εα<␈↓
<␈ελk␈↓
↑␈ε⊗∀␈↓ ∪␈ελr␈↓ "␈εα.
␈β∂Q␈↓ ε⊂␈εk␈↓ ε␈␈εk␈↓ πV␈εj␈↓ λβ␈εj␈↓ λ⊂␈εk␈↓
␈εk
␈β∂o␈↓ ↓H␈εαAn␈αalternativ␈α␈e␈αway␈αto␈αcompute␈αthe␈αmix␈α␈ed-radix␈αrepresen␈α␈tation,␈αallo␈α␈wing␈αsimilar
␈β⊂~␈↓ ↓H␈εαpossibilities␈α∞for␈α∂parallelism,␈α∂has␈α∂been␈α∂discussed␈α∞by␈α∂A.␈α∂S.␈α∞Fraenk␈α␈el,␈ε∂␈α⊂Proc.␈α∞A␈α␈CM
␈β⊂E␈↓ ↓H␈ε∂Nat.␈αConf.␈ε∩␈α19␈εα␈α(Philadelphia,␈α1965),␈αE1.4.
␈β⊂q␈↓ α␈εαIt␈απis␈απimportan␈α␈t␈απto␈απobserv␈α␈e␈απthat␈απthe␈απmix␈α␈ed-radix␈απrepresen␈α␈tation␈απ(24)␈απis␈απsu}cien␈α␈t
␈β⊃≤␈↓ ↓H␈εαto␈αcompare␈α
the␈α
magnitudes␈α
of␈αt␈α␈w␈α␈o␈α
modular␈α
n␈α␈um␈α␈bers.␈α∞For␈α
if␈α
w␈α␈e␈α
kno␈α␈w␈αthat␈α
0␈ε⊗␈α∀
␈β∪(
␈β↓Y␈↓ ↓H␈εα272␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.2
␈βα#␈↓ β↑␈ε→0␈↓ πF␈ε→0
␈βα(␈↓ ↓H␈ελu␈↓ ↓g␈εα<␈↓ α∃␈ελm␈↓ α=␈εαand␈απ0␈ε⊗␈α
∀␈↓ βH␈ελu␈↓ βo␈εα<␈↓ ∧≥␈ελm␈↓ ∧=␈εα,␈αλthen␈αλw␈α␈e␈απcan␈αλtell␈αλif␈↓ εb␈ελu␈↓ πα␈εα<␈↓ π0␈ελu␈↓ πT␈εαby␈αλ|rst␈αλdoing␈απthe␈αλcon␈α␈v␈α␈ersion␈απto
␈βαN␈↓ βU␈ε→0␈↓ ∧F␈ε→0␈↓ π7␈ε→0␈↓ ∧␈ε→0␈↓
m␈ε→0
␈βαS␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓r␈εα,␈↓ αα␈εα.␈αε.␈αε.␈↓ α2␈εα,␈↓ αB␈ελv␈↓ α←␈εα)␈α and␈αλ(␈↓ βB␈ελv␈↓ βc␈εα,␈↓ βs␈εα.␈αε.␈αε.␈↓ ∧#␈εα,␈↓ ∧3␈ελv␈↓ ∧P␈εα),␈α
then␈αλtesting␈α if␈↓ εP␈ελv␈↓ εw␈εα<␈↓ π%␈ελv␈↓ πB␈εα,␈α or␈α if␈↓ λ≤␈ελv␈↓ λC␈εα=␈↓ λq␈ελv␈↓ ↔␈εαand␈↓ Z␈ελv␈↓
,␈εα<␈↓
Z␈ελv␈↓ "␈εα,
␈βαa␈↓ ↓c␈ε¬1␈↓ αR␈εr
␈βαe␈↓ βU␈ε¬1␈↓ ∧C␈εr␈↓ ε←␈εr␈↓ π4␈εr␈↓ λ,␈εr␈↓ ↓␈εr␈↓ j␈εr␈↓ w␈ε→␈␈ε¬1␈↓
j␈εr␈↓
w␈ε→␈␈ε¬1
␈βα}␈↓ ↓H␈εαetc.␈α⊂It␈α∞is␈α∞not␈α
necessary␈α∞to␈α
con␈α␈v␈α␈ert␈α∞all␈α
the␈α∞way␈α∞to␈α
binary␈α∞or␈α
decimal␈α∞notation␈α
if
␈ββ%␈↓ λO␈ε→0␈↓ C␈ε→0
␈ββ*␈↓ ↓H␈εαw␈α␈e␈αonly␈αwan␈α␈t␈αto␈αkno␈α␈w␈αwhether␈α(␈↓ ¬G␈ελu␈↓ ¬j␈εα,␈↓ ¬z␈εα.␈αε.␈αε.␈↓ ε*␈εα,␈↓ ε:␈ελu␈↓ ε\␈εα)␈αis␈αless␈αthan␈α(␈↓ λ:␈ελu␈↓ λ↑␈εα,␈↓ λn␈εα.␈αε.␈αε.␈↓ ≡␈εα,␈↓ .␈ελu␈↓ Q␈εα).
␈ββ7␈↓ ¬[␈ε¬1␈↓ εN␈εr
␈ββ<␈↓ λO␈ε¬1␈↓ C␈εr
␈ββU␈↓ α␈εαThe␈α operation␈αλof␈αλcomparing␈α t␈α␈w␈α␈o␈αλn␈α␈um␈α␈bers,␈α
or␈αλof␈α deciding␈αλif␈αλa␈α modular␈αλn␈α␈um␈α␈ber
␈β∧␈↓ ↓H␈εαis␈αnegativ␈α␈e,␈αis␈αin␈α␈tuitiv␈α␈ely␈αv␈α␈ery␈αsimple,␈αso␈αw␈α␈e␈αw␈α␈ould␈αexpect␈αto␈αhav␈α␈e␈αa␈αm␈α␈uch␈αeasier
␈β∧+␈↓ ↓H␈εαmethod␈α
for␈α
making␈α
this␈α
test␈α
than␈α
the␈α∞con␈α␈v␈α␈ersion␈α
to␈α
mix␈α␈ed-radix␈α
form.␈α∂But␈α
the
␈β∧V␈↓ ↓H␈εαfollo␈α␈wing␈α
theorem␈α
sho␈α␈ws␈αthat␈α
there␈α
is␈αlittle␈α
hope␈α
of␈α
|nding␈αa␈α
substan␈α␈tially␈α
better
␈β¬α␈↓ ↓H␈εαmethod,␈α
since␈αthe␈α
range␈α
of␈α
a␈αmodular␈α
n␈α␈um␈α␈ber␈α
depends␈αessen␈α␈tially␈α
on␈α
all␈α
bits␈αof
␈β¬-␈↓ ↓H␈εαall␈αthe␈αresidues␈α(␈↓ βL␈ελu␈↓ βo␈εα,␈↓ β␈␈εα.␈αε.␈αε.␈↓ ∧/␈εα,␈↓ ∧?␈ελu␈↓ ∧a␈εα):
␈β¬:␈↓ β`␈ε¬1␈↓ ∧S␈εr
␈β¬j␈↓ ↓H␈ε∩Theorem␈α
S␈εα␈α(Nicholas␈αSzab␈↓ ∧d␈εα∞␈↓ ∧d␈εαo␈↓ ∧v␈εα,␈α1961)␈ε∩.␈ε∂␈α⊗In␈αterms␈α
of␈αthe␈αnotation␈αabo␈α␈v␈α␈e,␈αassume␈α
that
␈βε∪␈↓ αQ␈∧ε∪αQα
␈βε∀␈↓ α-␈ε⊗p
␈βε∃␈↓ ↓H␈ελm␈↓ ↓␈␈εα<␈↓ αQ␈ελm␈↓ αp␈ε∂,␈αand␈αlet␈↓ ∧␈ελL␈↓ ∧$␈ε∂be␈αan␈α␈y␈αvalue␈αin␈αthe␈αrange
␈βε"␈↓ ↓f␈ε¬1
␈βεb␈↓ ¬~␈ελm␈↓ ¬Q␈ε⊗∀␈↓ ¬␈␈ελL␈↓ ε!␈ε⊗∀␈↓ εO␈ελm␈↓ εw␈ε⊗␈␈↓ π#␈ελm␈↓ πP␈εα.␈↓
p␈εα(26)
␈βεo␈↓ ¬9␈ε¬1␈↓ πA␈ε¬1
␈βπ/␈↓ ↓H␈ε∂Let␈↓ αλ␈ελg␈↓ α$␈ε∂be␈α
an␈α␈y␈α
function␈αsuch␈α
that␈αthe␈α
set␈ε⊗␈αf␈↓ εD␈ελg␈↓ εU␈εα(0),␈↓ π∂␈ελg␈↓ π ␈εα(1),␈↓ πZ␈εα.␈αε.␈αε.␈↓ λ
␈εα,␈↓ λ~␈ελg␈↓ λ+␈εα(␈↓ λ7␈ελm␈↓ λj␈ε⊗␈␈εα␈αε1)␈ε⊗g␈ε∂␈α
con␈α␈tains␈α
few␈α␈er
␈βπ=␈↓ λU␈ε¬1
␈βπZ␈↓ ↓H␈ε∂than␈↓ α≤␈ελm␈↓ αU␈ε∂values.␈αThen␈αthere␈αare␈αn␈α␈um␈α␈bers␈↓ εS␈ελu␈↓ εt␈ε∂and␈↓ π:␈ελv␈↓ πY␈ε∂such␈αthat
␈βπh␈↓ α:␈ε¬1
␈βλ!␈↓ ↓v␈ελg␈↓ απ␈εα(␈↓ α∪␈ελu␈↓ α.␈εαmod␈↓ αx␈ελm␈↓ β%␈εα)␈α
=␈↓ βi␈ελg␈↓ βz␈εα(␈↓ ∧ε␈ελv␈↓ ∧∨␈εαmod␈↓ ∧i␈ελm␈↓ ¬⊗␈εα),␈↓ ¬z␈ελu␈↓ ε⊗␈εαmod␈↓ ε`␈ελm␈↓ π⊗␈εα=␈↓ πD␈ελv␈↓ π\␈εαmod␈↓ λ&␈ελm␈↓ λ↑␈εαfor␈↓ ⊗␈εα2␈ε⊗␈α
∀␈↓ `␈ελj␈↓ {␈ε⊗∀␈↓
)␈ελr␈↓
8␈εα;␈↓
p␈εα(27)
␈βλ.␈↓ β↔␈ε¬1␈↓ ¬λ␈ε¬1␈↓ ε}␈εj␈↓ λE␈εj
␈βλS␈↓ ∧n␈εα0␈ε⊗␈α
∀␈↓ ¬8␈ελu␈↓ ¬X␈εα<␈↓ εε␈ελL␈↓ ε(␈ε⊗∀␈↓ εV␈ελv␈↓ εr␈εα<␈↓ π ␈ελm␈↓ π@␈εα.␈↓
p␈εα(28)
␈β ␈↓ ↓H␈ε∂Proof.␈εα␈α∨By␈α⊂h␈α␈ypothesis,␈α⊂there␈α∂m␈α␈ust␈α⊂exist␈α∂n␈α␈um␈α␈bers␈↓ πi␈ελu␈↓ λ∞␈ε⊗≤␈↓ λB␈ελv␈↓ λe␈εαsatisfying␈α∂(27),␈α⊂since
␈β K␈↓ ↓H␈ελg␈↓ ↓g␈εαm␈α␈ust␈α∂tak␈α␈e␈α∂on␈α∂the␈α∞same␈α∂value␈α∂for␈α∂t␈α␈w␈α␈o␈α∞di{eren␈α␈t␈α∂residues.␈α∀Let␈α∂(␈↓ H␈ελu␈↓ ]␈εα,␈↓ m␈ελv␈↓
␈εα)␈α∂be␈α∂a␈α∞pair
␈β w␈↓ ↓H␈εαof␈α⊂values␈α⊂with␈α⊂0␈ε⊗␈α⊃∀␈↓ ∧∃␈ελu␈↓ ∧<␈εα<␈↓ ∧p␈ελv␈↓ ¬∀␈εα<␈↓ ¬I␈ελm␈↓ ¬x␈εαsatisfying␈α⊂(27),␈α∩for␈α⊂which␈↓ ≡␈ελu␈↓ C␈εαis␈α⊂a␈α⊂minim␈α␈um.
␈β
≥␈↓ α<␈ε→0␈↓ ∧Z␈ε→0␈↓
%␈ε→0
␈β
"␈↓ ↓H␈εαSince␈↓ α&␈ελu␈↓ αN␈εα=␈↓ α⎇␈ελu␈↓ β≠␈ε⊗␈␈↓ βG␈ελm␈↓ ∧↓␈εαand␈↓ ∧H␈ελv␈↓ ∧l␈εα=␈↓ ¬≠␈ελv␈↓ ¬7␈ε⊗␈␈↓ ¬c␈ελm␈↓ ε≥␈εαalso␈αsatisfy␈α
(27),␈αw␈α␈e␈α
m␈α␈ust␈α
hav␈α␈e␈↓
∂␈ελu␈↓
7␈εα<␈α0␈αby
␈β
/␈↓ βf␈ε¬1␈↓ εα␈ε¬1
␈β
M␈↓ ↓H␈εαthe␈α∞minimality␈α∞of␈↓ βn␈ελu␈↓ ∧∧␈εα.␈α∪Hence␈↓ ¬
␈ελu␈↓ ¬0␈εα<␈↓ ¬b␈ελm␈↓ ε≥␈ε⊗∀␈↓ εO␈ελL␈↓ εg␈εα;␈α∂and␈α∞if␈α∂(28)␈α∞does␈α∞not␈α∞hold,␈α∂w␈α␈e␈α∞m␈α␈ust
␈β
Z␈↓ ε↓␈ε¬1
␈β
x␈↓ ↓H␈εαhav␈α␈e␈↓ α ␈ελv␈↓ αC␈εα<␈↓ αw␈ελL␈↓ β∂␈εα.␈α⊗But␈↓ βy␈ελv␈↓ ∧≠␈εα>␈↓ ∧O␈ελu␈↓ ∧e␈εα,␈α⊂and␈↓ ¬I␈ελv␈↓ ¬f␈ε⊗␈␈↓ ε∀␈ελu␈↓ ε:␈εαis␈α∂a␈α⊂m␈α␈ultiple␈α∂of␈↓ λA␈ελm␈↓ λt␈εα.␈αε.␈αε.␈↓ $␈ελm␈↓ `␈εα=␈↓
∪␈ελm␈↓
3␈εα/␈↓
E␈ελm␈↓
r␈εα,␈α⊂so
␈βε␈↓ λ←␈ε¬2␈↓ B␈εr␈↓
d␈ε¬1
␈β#␈↓ ↓H␈ελv␈↓ ↓e␈ε⊗∃␈↓ α∀␈ελv␈↓ α/␈ε⊗␈␈↓ α[␈ελu␈↓ α{␈ε⊗∃␈↓ β*␈ελm␈↓ βJ␈εα/␈↓ β\␈ελm␈↓ ∧∪␈εα>␈↓ ∧B␈ελm␈↓ ∧o␈εα.␈α
Therefore,␈αif␈α
(28)␈αdoes␈α
not␈αhold␈αfor␈α
(␈↓ E␈ελu␈↓ Z␈εα,␈↓ j␈ελv␈↓ ⎇␈εα),␈α
it␈αwill␈αbe
␈β1␈↓ βz␈ε¬1␈↓ ∧`␈ε¬1
␈βI␈↓ ∧3␈ε→0␈α↓0␈↓ ∧d␈ε→0␈α↓0
␈βO␈↓ ↓H␈εαsatis|ed␈αfor␈αthe␈αpair␈α(␈↓ ∧≡␈ελu␈↓ ∧B␈εα,␈↓ ∧R␈ελv␈↓ ∧s␈εα)␈α
=␈α
(␈↓ ¬C␈ελv␈↓ ¬↑␈ε⊗␈␈↓ ε
␈ελm␈↓ ε7␈εα,␈↓ εG␈ελu␈↓ εd␈εα+␈↓ π⊂␈ελm␈↓ π8␈ε⊗␈␈↓ πd␈ελm␈↓ λ⊃␈εα).
␈βT␈↓ λO␈∧TλO≠∂
␈β\␈↓ ε(␈ε¬1␈↓ λβ␈ε¬1
␈β␈↓ α␈εαOf␈αcourse,␈αa␈αsimilar␈αresult␈αcan␈αbe␈αpro␈α␈v␈α␈ed␈αfor␈αan␈α␈y␈↓ λ∀␈ελm␈↓ λK␈εαin␈αplace␈αof␈↓ {␈ελm␈↓
(␈εα;␈αand␈αw␈α␈e
␈β→␈↓ λ2␈εj␈↓
→␈ε¬1
␈β6␈↓ ↓H␈εαcould␈α
also␈α
replace␈α
(28)␈αby␈α
the␈α
condition␈α
\␈↓ εZ␈ελa␈↓ εx␈ε⊗∀␈↓ π'␈ελu␈↓ πI␈εα<␈↓ πx␈ελa␈↓ λ∪␈εα+␈↓ λ?␈ελL␈↓ λc␈ε⊗∀␈↓ ∪␈ελv␈↓ 1␈εα<␈↓ a␈ελa␈↓ {␈εα+␈↓
(␈ελm␈↓
G␈εα"␈α
with
␈βb␈↓ ↓H␈εαonly␈αminor␈αchanges␈αin␈αthe␈αproof.␈αTherefore␈αTheorem␈αS␈αsho␈α␈ws␈αthat␈αman␈α␈y␈αsimple
␈β
␈↓ ↓H␈εαfunctions␈αcannot␈αbe␈αused␈αto␈αdetermine␈αthe␈αrange␈αof␈αa␈αmodular␈αn␈α␈um␈α␈ber.
␈β
A␈↓ α␈εαLet␈αλus␈αλno␈α␈w␈αλreiterate␈αλthe␈απmain␈αλpoin␈α␈ts␈αλof␈αλthe␈αλdiscussion␈αλin␈αλthis␈αλsection:␈α Modular
␈β
l␈↓ ↓H␈εαarithmetic␈αcan␈αbe␈αa␈αsigni|can␈α␈t␈αadvan␈α␈tage␈αfor␈αapplications␈αin␈αwhich␈αthe␈αpredom-
␈β∞↔␈↓ ↓H␈εαinan␈α␈t␈α∂calculations␈α∂in␈α␈v␈α␈olv␈α␈e␈α∂exact␈α∂m␈α␈ultiplication␈α∂(or␈α∂raising␈α∂to␈α∂a␈α∂po␈α␈w␈α␈er)␈α∂of␈α∂large
␈β∞B␈↓ ↓H␈εαin␈α␈tegers,␈αcom␈α␈bined␈αwith␈αaddition␈αand␈αsubtraction,␈α
but␈αwhere␈αthere␈αis␈αv␈α␈ery␈αlittle
␈β∞n␈↓ ↓H␈εαneed␈α∩to␈α∩divide␈α∩or␈α∩compare␈α∩n␈α␈um␈α␈bers,␈ε∂␈α∪or␈α∩to␈α∩test␈α∩whether␈α∩in␈α␈termediate␈α∩results
␈β∂→␈↓ ↓H␈ε∂\o␈α␈v␈α␈er⎇o␈α␈w"␈α⊂out␈α⊃of␈α⊃range.␈εα␈α→(It␈α⊃is␈α⊃importan␈α␈t␈α⊂not␈α⊃to␈α⊃forget␈α⊂the␈α⊃latter␈α⊂restriction;
␈β∂D␈↓ ↓H␈εαmethods␈απare␈αλavailable␈αλto␈απtest␈αλfor␈αλo␈α␈v␈α␈er⎇o␈α␈w,␈αλas␈αλin␈αλex␈α␈ercise␈απ12,␈α but␈απthey␈αλare␈αλin␈απgeneral
␈β∂o␈↓ ↓H␈εαso␈αcomplicated␈αthat␈αthey␈αn␈α␈ullify␈αthe␈αadvan␈α␈tages␈αof␈αmodular␈αarithmetic.)␈αSev␈α␈eral
␈β⊂~␈↓ ↓H␈εαapplications␈αof␈α
modular␈αcomputations␈α
hav␈α␈e␈α
been␈αdiscussed␈α
by␈αH.␈α
Takahasi␈αand
␈β⊂F␈↓ ↓H␈εαY.␈αIshibashi,␈ε∂␈αInformation␈αProc.␈αin␈αJapan␈ε∩␈α1␈εα␈α(1961),␈α28↑42.
␈β⊂q␈↓ α␈εαAn␈αexample␈α
of␈αsuch␈α
an␈αapplication␈αis␈α
the␈αexact␈αsolution␈α
of␈αlinear␈αequations
␈β⊃≤␈↓ ↓H␈εαwith␈αλrational␈α coe}cien␈α␈ts.␈αFor␈α various␈α reasons␈αλit␈α is␈α desirable␈αλin␈α this␈α case␈α to␈αλassume
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α ARIT␈α␈HMET␈α␈IC␈↓
v␈εα273
␈βα(␈↓ ↓H␈εαthat␈α the␈α
moduli␈↓ βE␈ελm␈↓ βq␈εα,␈↓ ∧ε␈ελm␈↓ ∧3␈εα,␈↓ ∧G␈εα.␈αε.␈αε.␈↓ ∧w␈εα,␈↓ ¬␈ελm␈↓ ¬@␈εαare␈α
all␈α
large␈α prime␈α
n␈α␈um␈α␈bers;␈α
the␈α
linear␈α equations
␈βα5␈↓ βc␈ε¬1␈↓ ∧$␈ε¬2␈↓ ¬)␈εr
␈βαS␈↓ ↓H␈εαcan␈α be␈α
solv␈α␈ed␈α independen␈α␈tly␈α modulo␈α
each␈↓ εR␈ελm␈↓ ε}␈εα.␈αA␈α
detailed␈α discussion␈α
of␈α this␈α proce-
␈βαa␈↓ εq␈εj
␈βα}␈↓ ↓H␈εαdure␈αλhas␈αλbeen␈αλgiv␈α␈en␈αλby␈αλI.␈αλBorosh␈αλand␈αλA.␈αλS.␈αλFraenk␈α␈el␈αλ[␈ε∂Math.␈αλComp.␈ε∩␈αλ20␈εα␈αλ(1966),␈αλ107↑
␈ββ*␈↓ ↓H␈εα112].␈α
By␈α means␈αλof␈αλtheir␈α method,␈α the␈αλnine␈αλindependen␈α␈t␈α solutions␈αλof␈αλa␈α system␈αλof␈αλ111
␈ββU␈↓ ↓H␈εαlinear␈αequations␈αin␈α
120␈αunkno␈α␈wns␈α
w␈α␈ere␈αobtained␈αexactly␈α
in␈αless␈α
than␈αone␈αhour's
␈β∧␈↓ ↓H␈εαrunning␈α
time␈αon␈αa␈α
CDC␈α1604␈αcomputer.␈αThe␈αsame␈αprocedure␈α
is␈αw␈α␈orth␈αwhile␈α
also
␈β∧+␈↓ ↓H␈εαfor␈α∞solving␈α∂sim␈α␈ultaneous␈α∂linear␈α∞equations␈α∂with␈α∞⎇oating-poin␈α␈t␈α∂coe}cien␈α␈ts,␈α∂when
␈β∧V␈↓ ↓H␈εαthe␈αmatrix␈αof␈αcoe}cien␈α␈ts␈αis␈αill-conditioned.␈αThe␈αmodular␈αtechnique␈α(treating␈αthe
␈β¬α␈↓ ↓H␈εαgiv␈α␈en␈α∂⎇oating-poin␈α␈t␈α∂coe}cien␈α␈ts␈α∂as␈α∂exact␈α∂rational␈α∂n␈α␈um␈α␈bers)␈α∂giv␈α␈es␈α∂a␈α∂method␈α∂for
␈β¬-␈↓ ↓H␈εαobtaining␈αthe␈ε∂␈α
true␈εα␈αansw␈α␈ers␈αin␈α
less␈αtime␈α
than␈αcon␈α␈v␈α␈en␈α␈tional␈α
methods␈αcan␈αproduce
␈β¬X␈↓ ↓H␈εαreliable␈ε∂␈αappro␈α␈ximate␈εα␈αansw␈α␈ers!␈α[See␈αM.␈αT.␈αMcClellan,␈ε∂␈αJA␈α␈CM␈ε∩␈α20␈εα␈α(1973),␈α563↑588,
␈βεβ␈↓ ↓H␈εαfor␈α∞further␈α∂dev␈α␈elopmen␈α␈ts␈α∂of␈α∞this␈α∂approach;␈α⊂and␈α∂see␈α∞also␈α∂E.␈α∂H.␈α∞Bareiss,␈ε∂␈α⊂J.␈α∞Inst.
␈βε.␈↓ ↓H␈ε∂Math.␈αand␈αAppl.␈ε∩␈α10␈εα␈α(1972),␈α68↑104,␈αfor␈αa␈αdiscussion␈αof␈αits␈αlimitations.]
␈βεZ␈↓ α␈εαThe␈α∞published␈α
literature␈α∞concerning␈α∞modular␈α
arithmetic␈α∞is␈α∞mostly␈α
orien␈α␈ted
␈βπε␈↓ ↓H␈εαto␈α␈wards␈α
hardware␈α
design,␈α∞since␈α
the␈α
carry-free␈α∞properties␈α
of␈α
modular␈α
arithmetic
␈βπ1␈↓ ↓H␈εαmak␈α␈e␈αλit␈αλattractiv␈α␈e␈αλfrom␈α the␈αλstandpoin␈α␈t␈αλof␈α high-speed␈αλoperation.␈αThe␈αλidea␈αλwas␈αλ|rst
␈βπ\␈↓ ↓H␈εαpublished␈αby␈α
A.␈αSv␈α␈oboda␈α
and␈α
M.␈αValach␈α
in␈α
the␈αCzechoslo␈α␈vakian␈α
journal␈ε∂␈αStroje
␈βλπ␈↓ ↓H␈ε∂na␈α
Zpraco␈α␈v␈↓ αw␈ε∂∞␈↓ αw␈ε∂a␈↓ β ␈ε∂n␈↓ β→␈ε∂∞␈↓ β≥␈ε∂␈↓ β2␈ε∂Informac␈↓ ∧:␈ε∂∞␈↓ ∧>␈ε∂␈↓ ∧S␈ε∩3␈εα␈α(1955),␈α247↑295;␈αthen␈α
independen␈α␈tly␈αby␈αH.␈αL.␈α
Garner
␈βλ-␈↓
λ␈εe
␈βλ2␈↓ ↓H␈εα[␈ε∂IRE␈αTrans.␈ε∩␈α
EC↑8␈εα␈α(1959),␈α
140↑147].␈α∞The␈αuse␈α
of␈αmoduli␈α
of␈αthe␈α
form␈↓ v␈εα2␈↓
(␈ε⊗␈␈εα␈αλ1␈αwas
␈βλ6␈↓
∀␈ε
j
␈βλ↑␈↓ ↓H␈εαsuggested␈αby␈αA.␈αS.␈αFraenk␈α␈el␈α[␈ε∂JA␈α␈CM␈ε∩␈α8␈εα␈α(1961),␈α87↑96],␈αand␈αsev␈α␈eral␈αadvan␈α␈tages␈αof
␈β ␈↓ ↓H␈εαsuch␈α moduli␈αλw␈α␈ere␈α demonstrated␈α by␈α A.␈α Sch␈↓ εP␈εα∪␈↓ εP␈εαo␈↓ εb␈εαnhage␈α [␈ε∂Computing␈ε∩␈α 1␈εα␈α (1966),␈α 182↑196].
␈β 4␈↓ ↓H␈εαSee␈αthe␈αbook␈ε∂␈αResidue␈αArithmetic␈αand␈αits␈αApplications␈αto␈αComputer␈αTechnology
␈β ←␈↓ ↓H␈εαby␈α
N.␈αS.␈α
Szab␈↓ β≥␈εα∞␈↓ β≥␈εαo␈↓ β:␈εαand␈α
R.␈αI.␈α
Tanaka␈α(New␈α
York:␈αMcGraw-Hill,␈α1967),␈αfor␈α
additional
␈β
␈↓ ↓H␈εαinformation␈αand␈αa␈αcomprehensiv␈α␈e␈αbibliograph␈α␈y␈αof␈αthe␈αsubject.
␈β
7␈↓ α␈εαFurther␈αdiscussion␈αof␈αmodular␈αarithmetic␈αcan␈αbe␈αfound␈αin␈αSection␈α4.3.3B.
␈βB␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈β_␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε 20␈↓ α;␈εβ]␈α⊗Fi␈α↓n␈α␈d␈αall␈αin␈α␈teg␈α␈ers␈↓ ∧U␈ε u␈↓ ∧t␈εβtha␈α␈t␈αsa␈α␈ti␈α↓sfy␈αa␈α␈l␈α↓l␈αo␈α␈f␈αth␈α␈e␈αfollo␈α␈wing␈αco␈α␈nd␈α␈i␈α↓tio␈α␈ns:␈↓ n␈ε u␈↓
λ␈εβmo␈α␈d␈↓
L␈εβ7␈α
=␈α1␈α␈,
␈β?␈↓ ↓H␈ε u␈↓ ↓a␈εβmod␈↓ α&␈εβ1␈α␈1␈α =␈α
6␈α␈,␈↓ β ␈ε u␈↓ β9␈εβmod␈↓ β}␈εβ1␈α␈3␈α =␈α
5,␈α0␈ε↔␈α ∀␈↓ ¬<␈ε u␈↓ ¬Z␈εβ<␈α 10␈α␈00.
␈βu␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗Wou␈α␈l␈α↓d␈α
Th␈α␈eorem␈α
C␈αstill␈αb␈α␈e␈αtru␈α␈e␈αif␈αw␈α␈e␈αallo␈α␈w␈α␈ed␈↓ λ␈ε a␈↓ λ≤␈εβ,␈↓ λ1␈ε u␈↓ λP␈εβ,␈↓ λe␈ε u␈↓ ∧␈εβ,␈↓ _␈εβ.␈αε.␈αε.␈↓ E␈εβ,␈↓ Y␈ε u␈↓
β␈εβan␈α␈d␈↓
D␈ε u␈↓
c␈εβto␈α
be
␈β
␈↓ λD␈εε1␈↓ λx␈εε2␈↓ l␈εr
␈β
≥␈↓ ↓H␈εβa␈α␈rbitrar␈α␈y␈αrea␈α␈l␈αn␈α}um␈α␈b␈α␈ers␈α(no␈α␈t␈αjust␈αin␈α␈teg␈α␈ers)?
␈β
N␈↓ ↓;␈ε↓x
␈β
R␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε M26␈↓ αX␈εβ]␈α⊗(␈ε⊂Gen␈α␈eralized␈αεChine␈α␈se␈απRemain␈α␈der␈απThe␈α␈orem␈εβ.)␈α∂L␈α↓e␈α␈t␈↓ λ2␈ε m␈↓ λ[␈εβ,␈↓ λl␈ε m␈↓ ∃␈εβ,␈↓ &␈εβ.␈αε.␈αε.␈↓ S␈εβ,␈↓ d␈ε m␈↓
∀␈εβb␈α␈e␈αλp␈α␈ositiv␈α␈e
␈β
]␈↓ λN␈εε1␈↓ λ␈εε2␈↓
␈εr
␈β
z␈↓ ↓H␈εβin␈α}tegers.␈αLet␈↓ βπ␈ε m␈↓ β/␈εβb␈α␈e␈α
th␈α␈e␈α
least␈α
c␈α␈ommo␈α␈n␈α
m␈α}ultiple␈α
of␈↓ π
␈ε m␈↓ π3␈εβ,␈↓ πF␈ε m␈↓ πo␈εβ,␈↓ λα␈εβ.␈αε.␈αε.␈↓ λ/␈εβ,␈↓ λB␈ε m␈↓ λk␈εβ,␈α
an␈α␈d␈α
let␈↓ m␈ε a␈↓ ⎇␈εβ,␈↓
⊃␈ε u␈↓
0␈εβ,␈↓
D␈ε u␈↓
c␈εβ,␈↓
w␈εβ.␈αε.␈α¬.␈↓ #␈εβ,
␈β∞¬␈↓ π&␈εε1␈↓ πb␈εε2␈↓ λ←␈εr␈↓
$␈εε1␈↓
W␈εε2
␈β∞"␈↓ ↓H␈ε u␈↓ ↓p␈εβb␈α␈e␈α an␈α}y␈α in␈α␈t␈α␈egers.␈α
P␈α↓ro␈α}v␈α␈e␈α t␈α␈hat␈αλthere␈αλi␈α↓s␈αλexa␈α␈ctly␈α o␈α␈ne␈α in␈α}teger␈↓ λπ␈ε u␈↓ λ#␈εβthat␈αλsatis|e␈α␈s␈α the␈αλcon␈α␈dition␈α␈s
␈β∞,␈↓ ↓[␈εr
␈β∞s␈↓ β␈ε a␈↓ β&␈ε↔∀␈↓ βP␈ε u␈↓ βn␈εβ<␈↓ ∧_␈ε a␈↓ ∧0␈εβ+␈↓ ∧Y␈ε m␈↓ ∧v␈εβ,␈↓ ¬M␈ε u␈↓ ¬j␈ε↔⊃␈↓ ε∃␈ε u␈↓ ε=␈εβ(mod␈α␈ulo␈↓ π?␈ε m␈↓ πg␈εβ),␈↓ λI1␈ε↔␈α ∀␈↓
␈ε j␈↓ &␈ε↔∀␈↓ P␈ε r␈↓ ←␈εβ,
␈β∞}␈↓ ε(␈εj␈↓ π[␈εj
␈β∂E␈↓ ↓H␈εβp␈α␈ro␈α␈v␈α␈i␈α↓d␈α␈ed␈α
that
␈β⊂∀␈↓ εs␈εα)
␈β⊂↔␈↓ β?␈ε u␈↓ βf␈ε↔⊃␈↓ ∧⊂␈ε u␈↓ ∧Q␈εβm␈α␈odu␈α␈lo␈↓ ¬M␈εβg␈α␈cd␈↓ ¬␈␈εβ(␈↓ ε
␈ε m␈↓ ε1␈εβ,␈↓ ε?␈ε m␈↓ εh␈εβ)␈↓ ε␈␈εβ,␈↓ πV1␈ε↔␈α ∀␈↓ λ~␈ε i␈↓ λ0␈εβ<␈↓ λ[␈ε j␈↓ λs␈ε↔∀␈↓ ≡␈ε r␈↓ ,␈εβ;
␈β⊂!␈↓ βR␈εi␈↓ ∧#␈εj␈↓ ε&␈εi␈↓ ε\␈εj
␈β⊂h␈↓ ↓H␈εβa␈α␈nd␈α
there␈α
i␈α↓s␈αn␈α␈o␈αsu␈α␈ch␈αin␈α␈te␈α␈ger␈↓ ∧g␈ε u␈↓ ¬ε␈εβwhe␈α␈n␈αth␈α␈e␈αl␈α↓a␈α␈tter␈αco␈α␈nd␈α␈i␈α↓tion␈α
fails␈αto␈αho␈α␈l␈α↓d␈α␈.
␈β⊃≡␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε 20␈↓ α;␈εβ]␈α⊗Con␈α}tin␈α␈ue␈α
the␈αp␈α␈roce␈α␈ss␈αsho␈α␈wn␈α
i␈α↓n␈α
(13);␈αwha␈α␈t␈αw␈α␈ould␈↓ λ"␈ε m␈↓ λK␈εβ,␈↓ λ`␈ε m␈↓ ␈εβ,␈↓ ≥␈ε m␈↓ F␈εβ,␈↓ Z␈εβ.␈αε.␈αε.␈↓
␈εβbe?
␈β⊃)␈↓ λ?␈εε7␈↓ λ|␈εε8␈↓ 9␈εε9
␈β∪(
␈β↓Y␈↓ ↓H␈εα274␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.2
␈βα&␈↓ ↓;␈ε↓x
␈βα*␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗S␈α␈up␈α␈po␈α␈se␈α∂that␈α∂th␈α␈e␈α∂meth␈α␈od␈α∂o␈α␈f␈α⊂(1␈α␈3)␈α∂i␈α↓s␈α∂co␈α␈n␈α␈tin␈α␈u␈α␈ed␈α∂u␈α␈n␈α␈til␈α∂no␈α∂mo␈α␈re␈↓
∩␈ε m␈↓
J␈εβca␈α␈n␈α∂be
␈βα5␈↓
/␈εj
␈βαR␈↓ ↓H␈εβc␈α␈hose␈α␈n;␈α∞d␈α␈oe␈α␈s␈α
this␈αmeth␈α␈od␈αgiv␈α␈e␈αthe␈αlarg␈α␈est␈α
a␈α␈ttaina␈α␈ble␈α
v␈α␈alue␈↓ λ.␈ε m␈↓ λW␈ε m␈↓ ¬␈εβ.␈αε.␈αε.␈↓ 2␈ε m␈↓ g␈εβsuc␈α␈h␈αthat␈αthe
␈βα\␈↓ λJ␈εε1␈↓ λs␈εε2␈↓ N␈εr
␈βαy␈↓ ↓H␈ε m␈↓ ↓{␈εβare␈αo␈α␈dd␈α
positiv␈α␈e␈α
i␈α↓n␈α}tege␈α␈rs␈αl␈α↓es␈α␈s␈αt␈α␈han␈α
100␈α
tha␈α␈t␈αare␈αrelativ␈α}ely␈αp␈α␈ri␈α↓m␈α␈e␈αi␈α↓n␈α
pa␈α␈i␈α↓rs␈α␈?
␈ββ∧␈↓ ↓d␈εj
␈ββ&␈↓ λ`␈εe␈↓ /␈εf␈↓
W␈εg
␈ββ*␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε M22␈↓ αX␈εβ]␈α⊗Let␈↓ β2␈ε e␈↓ β?␈εβ,␈↓ βS␈ε f␈↓ βc␈εβ,␈↓ βv␈ε g␈↓ ∧∂␈εβbe␈α no␈α␈nn␈α␈egat␈α␈i␈α↓v␈α}e␈α
in␈α␈te␈α␈gers.␈α⊗(a␈α␈)␈α
Sh␈α␈o␈α␈w␈α
th␈α␈at␈↓ λP␈εβ2␈↓ λt␈ε↔⊃␈↓ ∨␈εβ2␈↓ E␈εβ(mod␈α␈ulo␈↓
G␈εβ2␈↓
j␈ε↔␈␈εβ␈αε1␈α␈)
␈ββR␈↓ ↓H␈εβif␈απan␈α␈d␈απo␈α␈nly␈αεi␈α↓f␈↓ β↓␈ε e␈↓ β↔␈ε↔⊃␈↓ βA␈ε f␈↓ β[␈εβ(m␈α␈odu␈α␈lo␈↓ ∧\␈ε g␈↓ ∧l␈εβ).␈α∞(␈α↓b␈α␈)␈απGiv␈α␈en␈αεtha␈α␈t␈↓ ε←␈ε e␈↓ εr␈εβm␈α␈od␈↓ π6␈ε f␈↓ πO␈εβ=␈↓ πz␈ε d␈↓ λ∪␈εβan␈α␈d␈↓ λP␈ε c␈↓ λ]␈ε e␈↓ λo␈εβmod␈↓ 4␈ε f␈↓ M␈εβ=␈α 1,␈αλp␈α␈ro␈α␈v␈α␈e␈αεtha␈α␈t
␈β∧∞␈↓ ∧≤␈εd␈↓ ¬C␈εε(␈↓ ¬K␈εc␈↓ ¬V␈ε~␈␈εε1)␈↓ ε∧␈εd␈↓ εR␈εe␈↓ λ~␈εf
␈β∧⊃␈↓ β4␈εα(␈↓ π(␈εα)
␈β∧∀␈↓ β@␈εβ(1␈απ+␈↓ ∧␈εβ2␈↓ ∧2␈εβ+␈↓ ∧[␈ε↔↓␈αε↓␈αε↓␈↓ ¬ ␈εβ+␈↓ ¬2␈εβ2␈↓ ε∪␈εβ)␈ε↔␈απ↓␈εβ␈αλ(␈↓ εA␈εβ2␈↓ εd␈ε↔␈␈εβ␈αλ1␈α␈)␈↓ π:␈εβmo␈α␈d␈↓ π}␈εβ(␈↓ λ ␈εβ2␈↓ λ.␈ε↔␈␈εβ␈αλ1␈α␈)␈α
=␈α 1.
␈β∧R␈↓ ␈εe␈↓
\␈εf
␈β∧V␈↓ ↓H␈εβ[Th␈α␈u␈α␈s,␈α we␈αλha␈α␈v␈α␈e␈αλa␈α co␈α␈mp␈α␈arativ␈α}ely␈α simp␈α␈le␈α form␈α}ula␈α fo␈α␈r␈α th␈α␈e␈α in␈α␈v␈α}erse␈α o␈α␈f␈↓ λo␈εβ2␈↓ ∂␈ε↔␈␈εβ␈α∧1,␈α mod␈α␈ulo␈↓
K␈εβ2␈↓
m␈ε↔␈␈εβ␈α¬1␈α␈,
␈β∧}␈↓ ↓H␈εβa␈α␈s␈αrequ␈α␈ired␈αin␈α(2␈α␈2).]
␈β¬*␈↓ ↓;␈ε↓x
␈β¬.␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε M21␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈αth␈α␈at␈α(23␈α␈)␈αcan␈α
be␈αrewritten␈α
as␈αfollo␈α␈ws:
␈β¬k␈↓ ↓}␈ε v␈↓ α"␈ε↔ ␈↓ αM␈ε u␈↓ αr␈εβmod␈↓ β7␈ε m␈↓ β`␈εβ,
␈β¬v␈↓ α
␈εε1␈↓ α`␈εε1␈↓ βS␈εε1
␈βε∪␈↓ ↓}␈ε v␈↓ α"␈ε↔ ␈εβ␈α
(␈↓ αX␈ε u␈↓ α␈␈ε↔␈␈↓ β(␈ε v␈↓ βC␈εβ)␈↓ βT␈ε c␈↓ β␈␈εβm␈α␈od␈↓ ∧C␈ε m␈↓ ∧l␈εβ,
␈βε≥␈↓ α
␈εε2␈↓ αk␈εε2␈↓ β7␈εε1␈↓ β`␈εε1␈α␈2␈↓ ∧←␈εε2
␈βε7␈↓ αM␈εα(␈↓ ∧O␈εα)
␈βε:␈↓ ↓}␈ε v␈↓ α"␈ε↔ ␈↓ αY␈ε u␈↓ β␈ε↔␈␈εβ␈αλ(␈↓ β4␈ε v␈↓ βW␈εβ+␈↓ β␈␈ε m␈↓ ∧(␈ε v␈↓ ∧D␈εβ)␈↓ ∧`␈ε c␈↓ ¬¬␈ε c␈↓ ¬0␈εβmod␈↓ ¬u␈ε m␈↓ ε≡␈εβ,
␈βεE␈↓ α
␈εε3␈↓ αl␈εε3␈↓ βC␈εε1␈↓ ∧≤␈εε1␈↓ ∧7␈εε2␈↓ ∧l␈εε13␈↓ ¬⊃␈εε23␈↓ ε⊃␈εε3
␈βε`␈↓ α⊂␈εβ.
␈βεn␈↓ α⊂␈εβ.
␈βε⎇␈↓ α⊂␈εβ.
␈βπ!␈↓ αM␈εα(␈↓ λ7␈εα)
␈βπ$␈↓ ↓}␈ε v␈↓ α"␈ε↔ ␈↓ αY␈ε u␈↓ β␈ε↔␈␈εβ␈απ(␈↓ β3␈ε v␈↓ βV␈εβ+␈↓ β␈␈ε m␈↓ ∧(␈εβ(␈↓ ∧3␈ε v␈↓ ∧V␈εβ+␈↓ ∧}␈ε m␈↓ ¬'␈εβ(␈↓ ¬2␈ε v␈↓ ¬U␈εβ+␈↓ ¬}␈ε↔↓␈αε↓␈α¬↓␈↓ ε,␈εβ+␈↓ εU␈ε m␈↓ π#␈ε v␈↓ πd␈εβ)␈↓ πt␈εβ.␈αε.␈αε.␈↓ λ!␈εβ))␈↓ λI␈ε c␈↓ λs␈εβ.␈αε.␈αε.␈↓ ∨␈ε c␈↓
␈εβmo␈α␈d␈↓
D␈ε m␈↓
m␈εβ.
␈βπ/␈↓ α
␈εr␈↓ αl␈εr␈↓ βB␈εε1␈↓ ∧≠␈εε1␈↓ ∧B␈εε2␈↓ ¬≠␈εε2␈↓ ¬A␈εε3␈↓ εq␈εr␈↓ ε⎇␈ε~␈␈εε␈α↓2␈↓ π2␈εr␈↓ π>␈ε~␈␈εε1␈↓ λU␈εε1␈↓ λa␈εr␈↓
a␈εr
␈βπ0␈↓ +␈εε(␈↓ 4␈εr␈↓ @␈ε~␈␈εε1)␈↓ n␈εr
␈βπc␈↓ ↓H␈εβIf␈α⊂th␈α␈e␈α⊂fo␈α␈rm␈α␈ulas␈α∂are␈α∂rewritten␈α∂i␈α↓n␈α∂th␈α␈is␈α⊂way␈α␈,␈α∩w␈α␈e␈α∂see␈α∂that␈α∂on␈α␈l␈α↓y␈↓ λ[␈ε r␈↓ λt␈ε↔␈␈εβ␈α1␈α∂con␈α␈stan␈α}ts␈↓
X␈ε C␈↓ ␈εβ=
␈βπn␈↓
n␈εj
␈βλ␈↓ ↓H␈ε c␈↓ ↓r␈εβ.␈αε.␈α¬.␈↓ α≡␈ε c␈↓ α␈␈εβm␈α␈od␈↓ βC␈ε m␈↓ βs␈εβare␈αλn␈α␈eed␈α␈ed␈αλin␈α␈stead␈απof␈↓ ε'␈ε r␈↓ ε6␈εβ(␈↓ εA␈ε r␈↓ εS␈ε↔␈␈εβ␈αβ1)/␈α␈2␈αλcon␈α␈stan␈α}ts␈↓ λL␈ε c␈↓ λw␈εβa␈α␈s␈αλi␈α↓n␈απ(23␈α␈)␈α↓.␈α
Discu␈α␈ss␈αλthe
␈βλ∃␈↓ ↓T␈εε1␈↓ ↓`␈εj␈↓ β←␈εj␈↓ λX␈εi␈↓ λc␈εj
␈βλ⊗␈↓ α*␈εε(␈↓ α3␈εj␈↓ α?␈ε~␈␈εε1)␈↓ αm␈εj
␈βλ2␈↓ ↓H␈εβre␈α␈l␈α↓a␈α␈tiv␈α␈e␈αm␈α␈erits␈αof␈α
this␈αv␈α}ersion␈α
of␈αth␈α␈e␈αfo␈α␈rm␈α␈ula␈α
as␈αc␈α␈omp␈α␈ared␈α
to␈α
(23),␈αfrom␈α
th␈α␈e␈αstan␈α␈dp␈α␈oin␈α}t
␈βλZ␈↓ ↓H␈εβo␈α␈f␈αcomp␈α␈ute␈α␈r␈αcalcu␈α␈l␈α↓a␈α␈ti␈α↓o␈α␈n.
␈β ␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε M21␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αtha␈α␈t␈αthe␈αn␈α}um␈α␈b␈α␈er␈↓ ¬M␈ε u␈↓ ¬l␈εβde␈α␈|n␈α␈ed␈αb␈α␈y␈α(23␈α␈)␈αa␈α␈nd␈α
(24)␈αsat␈α␈i␈α↓s|␈α␈es␈α(25␈α␈)␈α↓.
␈β ;␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈α h␈α␈o␈α␈w␈α to␈α go␈α from␈α th␈α␈e␈α va␈α␈l␈α↓u␈α␈es␈↓ εK␈ε v␈↓ εf␈εβ,␈↓ εy␈εβ.␈αε.␈αε.␈↓ π&␈εβ,␈↓ π9␈ε v␈↓ π]␈εβof␈α th␈α␈e␈α mix␈α␈ed␈α␈-radix␈α n␈α␈ota␈α␈ti␈α↓o␈α␈n␈α (24␈α␈)
␈β F␈↓ εZ␈εε1␈↓ πG␈εr
␈β c␈↓ ↓H␈εβb␈α␈ack␈α
to␈α
the␈αo␈α␈riginal␈αre␈α␈si␈α↓d␈α␈ue␈α␈s␈↓ ∧n␈ε u␈↓ ¬∞␈εβ,␈↓ ¬"␈εβ.␈αε.␈αε.␈↓ ¬O␈εβ,␈↓ ¬c␈ε u␈↓ εα␈εβ,␈αusin␈α␈g␈αon␈α␈ly␈αa␈α␈ri␈α↓th␈α␈metic␈αm␈α␈od␈↓ !␈ε m␈↓ U␈εβto␈α
com␈α␈pu␈α␈te␈↓ ∧␈ε u␈↓ #␈εβ.
␈β n␈↓ ¬↓␈εε1␈↓ ¬v␈εr␈↓ >␈εj␈↓ ↔␈εj
␈β
∀␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε M25␈↓ αX␈εβ]␈α⊗An␈αin␈α␈teg␈α␈er␈↓ ∧≤␈ε u␈↓ ∧;␈εβtha␈α␈t␈αlies␈αin␈αth␈α␈e␈αsy␈α␈mmet␈α␈ri␈α↓c␈α␈al␈αran␈α␈ge␈α(10)␈αmigh␈α}t␈αb␈α␈e␈αrep␈α␈resen␈α}ted
␈β
;␈↓ ↓H␈εβb␈α␈y␈α
|n␈α␈din␈α␈g␈αth␈α␈e␈α
n␈α␈um␈α}bers␈↓ ∧#␈ε u␈↓ ∧C␈εβ,␈↓ ∧W␈εβ.␈αε.␈α¬.␈↓ ¬β␈εβ,␈↓ ¬↔␈ε u␈↓ ¬A␈εβsu␈α␈ch␈α
tha␈α␈t␈↓ εT␈ε u␈↓ εq␈ε↔⊃␈↓ π≤␈ε u␈↓ πD␈εβ(mod␈α␈ulo␈↓ λF␈ε m␈↓ λn␈εβ)␈αa␈α␈nd␈ε↔␈α
␈␈↓ e␈ε m␈↓
∞␈εβ/␈α␈2␈α <␈↓
c␈ε u␈↓ ␈εβ<
␈β
F␈↓ ∧6␈εε1␈↓ ¬*␈εr␈↓ π/␈εj␈↓ λb␈εj␈↓
α␈εj␈↓
v␈εj
␈β
c␈↓ ↓H␈ε m␈↓ ↓p␈εβ/2␈α␈,␈α⊃inste␈α␈ad␈α∂o␈α␈f␈α⊂in␈α␈si␈α↓stin␈α␈g␈α∂tha␈α␈t␈α∂0␈ε↔␈α⊂∀␈↓ ¬s␈ε u␈↓ ε"␈εβ<␈↓ εS␈ε m␈↓ π␈εβas␈α∂in␈α∂th␈α␈e␈α∂text␈α␈.␈α_Discuss␈α∂th␈α␈e␈α∂mod␈α␈ula␈α␈r
␈β
n␈↓ ↓d␈εj␈↓ εε␈εj␈↓ εp␈εj
␈β␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α
pro␈α␈cedu␈α␈res␈αth␈α␈at␈αw␈α␈o␈α␈uld␈α
be␈αa␈α␈pp␈α␈rop␈α␈ri␈α↓a␈α␈te␈αin␈αc␈α␈on␈α␈nectio␈α␈n␈αwith␈α
such␈α
a␈αsy␈α␈metr␈α␈i␈α↓ca␈α␈l
␈β/␈↓ β!␈εα(␈↓ πM␈εα)
␈β2␈↓ ↓H␈εβre␈α␈prese␈α␈n␈α␈tatio␈α␈n␈↓ β-␈εβinclu␈α␈ding␈α
the␈αc␈α␈on␈α␈v␈α}ersion␈α
proc␈α␈ess,␈α(␈α↓2␈α␈3)␈↓ πY␈εβ.
␈βc␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗Assu␈α␈me␈αtha␈α␈t␈αa␈α␈l␈α↓l␈αthe␈↓ ¬"␈ε m␈↓ ¬V␈εβare␈αod␈α␈d,␈αan␈α␈d␈αthat␈↓ πb␈ε u␈↓ λ␈εβ=␈α
(␈↓ λ6␈ε u␈↓ λV␈εβ,␈↓ λe␈εβ.␈α¬.␈αε.␈↓ ⊃␈εβ,␈↓ ␈ε u␈↓ ?␈εβ)␈αis␈αkn␈α␈o␈α␈wn␈αto␈αbe
␈βn␈↓ ¬>␈εj␈↓ λI␈εε1␈↓ 3␈εr
␈β␈↓ ↓H␈εβe␈α␈v␈α␈en␈α␈,␈α
wh␈α␈ere␈α 0␈ε↔␈α ∀␈↓ β>␈ε u␈↓ β[␈εβ<␈↓ ∧ε␈ε m␈↓ ∧#␈εβ.␈αFind␈αλa␈α re␈α␈ason␈α␈ab␈α␈ly␈α fast␈αλmeth␈α␈od␈αλto␈α c␈α␈omp␈α␈ute␈↓ !␈ε u␈↓ 5␈εβ/2␈α u␈α␈sing␈αλmod␈α␈ula␈α␈r
␈β2␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α␈.
␈βc␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε M10␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α⊂t␈α␈hat,␈α⊂if␈α⊂0␈ε↔␈α⊂∀␈↓ ¬$␈ε u␈↓ ¬8␈εβ,␈↓ ¬G␈ε v␈↓ ¬i␈εβ<␈↓ ε~␈ε m␈↓ ε8␈εβ,␈α⊂the␈α∂m␈α␈odu␈α␈lar␈α∂ad␈α␈dition␈α∂o␈α␈f␈↓ I␈ε u␈↓ l␈εβan␈α␈d␈↓
1␈ε v␈↓
R␈εβca␈α␈use␈α␈s
␈β
␈↓ ↓H␈εβo␈α}v␈α␈er⎇␈α␈o␈α␈w␈α(i.e.,␈α
is␈αo␈α␈utside␈αthe␈αran␈α␈ge␈αa␈α␈ll␈α↓o␈α}we␈α␈d␈αb␈α␈y␈αt␈α␈he␈αm␈α␈odu␈α␈lar␈αre␈α␈prese␈α␈n␈α␈tatio␈α␈n)␈αif␈αan␈α␈d␈αo␈α␈nly
␈β
2␈↓ ↓H␈εβif␈α∞th␈α␈e␈α∞su␈α␈m␈α∞is␈α
l␈α↓e␈α␈ss␈α∞tha␈α␈n␈↓ ∧"␈ε u␈↓ ∧6␈εβ.␈α∀(Th␈α}us␈α
the␈α
o␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈α
dete␈α␈ction␈α
pro␈α␈blem␈α
i␈α↓s␈α
equ␈α␈ivalen␈α}t␈α∞to␈α
the
␈β
Z␈↓ ↓H␈εβc␈α␈omp␈α␈arison␈α
pro␈α␈blem.)
␈β∞π␈↓ ↓;␈ε↓x
␈β∞␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε M25␈↓ αX␈εβ]␈α⊗(␈ε⊂Au␈α␈tomo␈α␈rph␈α␈i␈α↓c␈αn␈α␈um␈α}bers.␈εβ)␈α≥An␈↓ ε0␈ε n␈↓ εD␈εβ-␈α↓p␈α␈lace␈α
d␈α␈ecima␈α␈l␈α∞n␈α}um␈α}ber␈↓ ≥␈ε x␈↓ :␈εβ>␈α
1␈α
is␈α
ca␈α␈l␈α↓led␈αan
␈β∞.␈↓ >␈εε2
␈β∞2␈↓ ↓H␈εβ\␈α␈au␈α␈tomo␈α␈rph␈α␈"␈αby␈αre␈α␈creat␈α␈i␈α↓o␈α␈nal␈αma␈α␈them␈α␈atician␈α␈s␈α
if␈αthe␈αlast␈↓ λ ␈ε n␈↓ λ)␈εβdigits␈αof␈↓ -␈ε x␈↓ W␈εβare␈αeq␈α␈ua␈α␈l␈α
to␈↓ ∩␈ε x␈↓ #␈εβ.
␈β∞V␈↓ πs␈εε2
␈β∞Z␈↓ ↓H␈εβFo␈α␈r␈α∂ex␈α␈amp␈α␈le,␈α⊂9␈α␈376␈α∞is␈α∞a␈α∂4␈α␈-place␈α∞a␈α␈utom␈α␈orp␈α␈h,␈α∂si␈α↓n␈α␈ce␈α∞937␈↓ πb␈εβ6␈↓ λ∞␈εβ=␈α⊂8␈α␈79␈α␈093␈α␈76.␈α∃[See␈ε⊂␈α∞Sc␈α␈i␈α↓e␈α␈n␈α␈ti|c
␈β∂↓␈↓ ↓H␈ε⊂Am␈α␈erican␈ε∪␈α
218␈εβ␈α(J␈α␈an␈α␈u␈α␈ary␈α
196␈α␈8),␈α125␈α␈.]
␈β∂,␈↓
X␈εn
␈β∂1␈↓ ↓e␈εβa)␈↓ α␈εβPro␈α␈v␈α␈e␈α
tha␈α␈t␈αan␈↓ β↑␈ε n␈↓ βr␈εβ-plac␈α␈e␈αn␈α}um␈α␈b␈α␈er␈↓ ¬J␈ε x␈↓ ¬d␈εβ>␈α
1␈α
i␈α↓s␈α
an␈α
aut␈α␈omor␈α␈ph␈α
i␈α↓f␈α
and␈α
o␈α␈nly␈αif␈↓ l␈ε x␈↓
β␈εβm␈α␈od␈↓
G␈εβ5␈↓
q␈εβ=␈α
0
␈β∂T␈↓ ∧β␈εn␈↓ β␈εn␈↓
W␈εn
␈β∂X␈↓ α␈εβor␈α
1␈α
a␈α␈nd␈↓ β↔␈ε x␈↓ β.␈εβmod␈↓ βs␈εβ2␈↓ ∧ ␈εβ=␈α
1␈α
or␈α
0␈α␈,␈α∞resp␈α␈ectiv␈α␈ely␈α␈.␈α∩[Th␈α␈u␈α␈s,␈α∞if␈↓ λ∞␈ε m␈↓ λD␈εβ=␈↓ λr␈εβ2␈↓ ␈εβan␈α␈d␈↓ c␈ε m␈↓
_␈εβ=␈↓
F␈εβ5␈↓
g␈εβ,␈α∞the
␈β∂c␈↓ λ+␈εε1␈↓ ␈␈εε2
␈β⊂␈↓ α␈εβon␈α␈ly␈αt␈α␈w␈α␈o␈↓ β∃␈ε n␈↓ β)␈εβ-pla␈α␈ce␈αau␈α␈tomo␈α␈rph␈α␈s␈αare␈αth␈α␈e␈αn␈α␈u␈α␈m␈α␈be␈α␈rs␈↓ π6␈ε M␈↓ πk␈εβa␈α␈nd␈↓ λ+␈ε M␈↓ λ`␈εβin␈α(7␈α␈)␈α↓.]
␈β⊂
␈↓ πS␈εε1␈↓ λH␈εε2
␈β⊂#␈↓ πg␈εε2␈↓ λG␈εε3␈↓ J␈εε2␈↓ W␈εn
␈β⊂'␈↓ ↓c␈εβb)␈↓ α␈εβPro␈α␈v␈α␈e␈αth␈α␈at␈αif␈↓ βS␈ε x␈↓ βq␈εβis␈αan␈↓ ∧C␈ε n␈↓ ∧W␈εβ-p␈α␈l␈α↓a␈α␈ce␈αau␈α␈tomo␈α␈rph␈α␈,␈α
th␈α␈en␈α(3␈↓ πV␈ε x␈↓ π|␈ε↔␈␈εβ␈αλ2␈↓ λ6␈ε x␈↓ λT␈εβ)␈↓ λe␈εβm␈α␈od␈↓ )␈εβ1␈↓ :␈εβ0␈↓ s␈εβi␈α↓s␈αa␈α2␈↓
C␈ε n␈↓
W␈εβ-place
␈β⊂O␈↓ α␈εβau␈α␈tomo␈α␈rph␈α␈.
␈β⊂r␈↓
∀␈ε~0
␈β⊂w␈↓ ↓g␈εβc)␈↓ α␈εβGiv␈α␈en␈α tha␈α␈t␈↓ β4␈ε c␈↓ βA␈ε x␈↓ β[␈ε↔⊃␈εβ␈α
1␈α (mo␈α␈du␈α␈l␈α↓o␈↓ ¬!␈ε y␈↓ ¬4␈εβ),␈αwh␈α␈at␈α
is␈α
a␈α
si␈α↓m␈α␈ple␈α
form␈α␈u␈α␈la␈α
f␈α↓o␈α␈r␈α
a␈α
n␈α␈u␈α␈m␈α␈ber␈↓
π␈ε c␈↓
$␈εβsuch␈α tha␈α␈t
␈β⊃~␈↓ α→␈ε~0␈↓ α1␈εε2␈↓ ∧∨␈εε2
␈β⊃≡␈↓ α␈ε c␈↓ α∨␈ε x␈↓ αG␈ε↔⊃␈εβ␈α 1␈α (mod␈α␈ulo␈↓ ∧
␈ε y␈↓ ∧,␈εβ)?
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα275
␈βα(␈↓ ↓4␈ε≥*␈↓ ↓H␈ε≥4␈α␈.3.3.␈α
Ho␈α␈w␈α
Fast␈α
C␈α↓an␈α
We␈α
M␈α␈u␈α↓ltipl␈α↓y?
␈βαi␈↓ ↓H␈εαThe␈α∪con␈α␈v␈α␈en␈α␈tional␈α∪method␈α∪for␈α∪m␈α␈ultiplication,␈α∃Algorithm␈α∪4.3.1M,␈α∪requires␈α∪ap-
␈ββ∀␈↓ ↓H␈εαpro␈α␈ximately␈↓ β␈ελc␈↓ β≠␈ελm␈↓ β:␈ελn␈↓ βX␈εαoperations␈αλto␈απm␈α␈ultiply␈αλan␈↓ εd␈ελm␈↓ π∧␈εα-digit␈απn␈α␈um␈α␈ber␈αλby␈αλan␈↓ ;␈ελn␈↓ Q␈εα-digit␈απn␈α␈um␈α␈ber,
␈ββ?␈↓ ↓H␈εαwhere␈↓ α.␈ελc␈↓ αG␈εαis␈αa␈αconstan␈α␈t.␈αIn␈α
this␈αsection,␈αlet␈αus␈αassume␈αfor␈α
con␈α␈v␈α␈enience␈αthat␈↓
5␈ελm␈↓
←␈εα=␈↓
␈ελn␈↓ "␈εα,
␈ββj␈↓ ↓H␈εαand␈αλlet␈απus␈αλconsider␈αλthe␈αλfollo␈α␈wing␈αλquestion:␈ε∂␈α
Does␈αλev␈α␈ery␈αλgeneral␈αλcomputer␈απalgorithm
␈β∧⊗␈↓ ↓H␈ε∂for␈α∞m␈α␈ultiplying␈α∞t␈α␈w␈α␈o␈↓ ∧␈ελn␈↓ ∧!␈ε∂-digit␈α∂n␈α␈um␈α␈bers␈α∞require␈α∞an␈α∂ex␈α␈ecution␈α∞time␈α∞proportional␈α∞to
␈β∧<␈↓ ↓]␈ε¬2
␈β∧A␈↓ ↓H␈ελn␈↓ ↓l␈ε∂,␈αas␈↓ α.␈ελn␈↓ αO␈ε∂increases?
␈β∧l␈↓ α␈εα(In␈α this␈αλquestion,␈α
a␈α \general"␈αλalgorithm␈α means␈α one␈αλthat␈α accepts,␈α as␈α input,␈α the
␈β¬↔␈↓ ↓H␈εαn␈α␈um␈α␈ber␈↓ αK␈ελn␈↓ αm␈εαand␈α
t␈α␈w␈α␈o␈α
arbitrary␈↓ ¬∀␈ελn␈↓ ¬*␈εα-digit␈α
n␈α␈um␈α␈bers␈α
in␈α
positional␈α
notation,␈α
and␈α
whose
␈β¬B␈↓ ↓H␈εαoutput␈α is␈α
their␈α
product␈α in␈α
positional␈α form.␈αCertainly␈α if␈α
w␈α␈e␈α
w␈α␈ere␈α allo␈α␈w␈α␈ed␈α
to␈α choose
␈β¬n␈↓ ↓H␈εαa␈α
di{eren␈α␈t␈α
algorithm␈α∞for␈α
each␈α∞value␈α
of␈↓ ε7␈ελn␈↓ εL␈εα,␈α∞the␈α
question␈α∞w␈α␈ould␈α
be␈α∞of␈α
no␈α
in␈α␈terest,
␈βε→␈↓ ↓H␈εαsince␈α m␈α␈ultiplication␈α
could␈α
be␈α done␈α
for␈α an␈α␈y␈α
speci|c␈α
value␈α of␈↓ λX␈ελn␈↓ λw␈εαby␈α
a␈α \table-lookup"
␈βεD␈↓ ↓H␈εαoperation␈α
in␈α
some␈α
h␈α␈uge␈α table.␈αThe␈α
term␈α
\computer␈α
algorithm"␈α
is␈α
mean␈α␈t␈α to␈α
imply
␈βεo␈↓ ↓H␈εαan␈α
algorithm␈α
that␈α
is␈α
suitable␈α
for␈α
implemen␈α␈tation␈α
on␈α
a␈αdigital␈α
computer␈α
such␈α
as
␈βπ~␈↓ ↓H␈ε∃M␈α␈IX␈εα,␈αand␈αthe␈αex␈α␈ecution␈αtime␈αis␈αto␈αbe␈αthe␈αtime␈αit␈αtak␈α␈es␈αto␈αperform␈αthe␈αalgorithm
␈βπF␈↓ ↓H␈εαon␈αsuch␈αa␈αcomputer.)
␈βλα␈↓ ↓H␈ε∩A.␈α∞Digital␈α∞methods.␈εα␈α≥The␈α∞answ␈α␈er␈α∂to␈α∞the␈α∞abo␈α␈v␈α␈e␈α∞question␈α∞is,␈α∂rather␈α∞surprisingly,
␈βλ-␈↓ ↓H␈εα\No,"␈α∂and,␈α∂in␈α∞fact,␈α∂it␈α∂is␈α∞not␈α∂v␈α␈ery␈α∞di}cult␈α∂to␈α∞see␈α∂wh␈α␈y.␈α∪For␈α∂con␈α␈v␈α␈enience,␈α∂let␈α∞us
␈βλX␈↓ ↓H␈εαassume␈α
throughout␈α∞this␈α
section␈α
that␈α∞w␈α␈e␈α
are␈α∞w␈α␈orking␈α
with␈α∞in␈α␈tegers␈α
expressed␈α
in
␈β β␈↓ ↓H␈εαbinary␈αnotation.␈α∞If␈αw␈α␈e␈α
hav␈α␈e␈αt␈α␈w␈α␈o␈α
2␈↓ ¬\␈ελn␈↓ ¬q␈εα-bit␈α
n␈α␈um␈α␈bers␈↓ πF␈ελu␈↓ πg␈εα=␈α
(␈↓ λ!␈ελu␈↓ λ␈εα.␈αε.␈αε.␈↓ 8␈ελu␈↓ [␈ελu␈↓ ⎇␈εα)␈↓
$␈εαand␈↓
k␈ελv␈↓ λ␈εα=
␈β ⊃␈↓ λ6␈ε¬2␈↓ λD␈εn␈↓ λV␈ε→␈␈ε¬1␈↓ L␈ε¬1␈↓ o␈ε¬0␈↓
␈ε¬2
␈β .␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ α5␈εα.␈αε.␈αε.␈↓ αe␈ελv␈↓ ββ␈ελv␈↓ β!␈εα)␈↓ β<␈εα,␈αw␈α␈e␈αcan␈αwrite
␈β <␈↓ ↓c␈ε¬2␈↓ ↓r␈εn␈↓ α∧␈ε→␈␈ε¬1␈↓ αu␈ε¬1␈↓ β∪␈ε¬0␈↓ β-␈ε¬2
␈β t␈↓ ∧⎇␈εn␈↓ πB␈εn
␈β z␈↓ ∧≥␈ελu␈↓ ∧=␈εα=␈↓ ∧k␈εα2␈↓ ¬∂␈ελU␈↓ ¬<␈εα+␈↓ ¬h␈ελU␈↓ ε
␈εα,␈↓ εe␈ελv␈↓ πα␈εα=␈↓ π0␈εα2␈↓ πT␈ελV␈↓ π␈␈εα+␈↓ λ+␈ελV␈↓ λM␈εα,␈↓ α␈εα(1)
␈β
π␈↓ ¬&␈ε¬1␈↓ ¬␈␈ε¬0␈↓ πh␈ε¬1␈↓ λ?␈ε¬0
␈β
E␈↓ ↓H␈εαwhere␈↓ α1␈ελU␈↓ αd␈εα=␈α
(␈↓ β!␈ελu␈↓ ∧π␈εα.␈αε.␈αε.␈↓ ∧7␈ελu␈↓ ∧]␈εα)␈↓ ¬ε␈εαis␈α
the␈α∞\most␈α∞signi|can␈α␈t␈α∞half"␈α∞of␈α
the␈α∞n␈α␈um␈α␈ber␈↓
O␈ελu␈↓
r␈εαand
␈β
S␈↓ αH␈ε¬1␈↓ β5␈ε¬2␈↓ βD␈εn␈↓ βV␈ε→␈␈ε¬1␈↓ ∧K␈εn␈↓ ∧i␈ε¬2
␈β
q␈↓ ↓H␈ελU␈↓ ↓x␈εα=␈α(␈↓ α4␈ελu␈↓ β␈εα.␈αε.␈αε.␈↓ β;␈ελu␈↓ β↑␈εα)␈↓ ∧ε␈εαis␈αthe␈α
\least␈α
signi|can␈α␈t␈α
half";␈α
similarly␈↓ λv␈ελV␈↓ $␈εα=␈α(␈↓ ←␈ελv␈↓
@␈εα.␈αε.␈αε.␈↓
p␈ελv␈↓ ∩␈εα)
␈β
}␈↓ ↓←␈ε¬0␈↓ αH␈εn␈↓ αZ␈ε→␈␈ε¬1␈↓ βP␈ε¬0␈↓ βj␈ε¬2␈↓
␈ε¬1␈↓ o␈ε¬2␈↓ ⎇␈εn␈↓
∂␈ε→␈␈ε¬1␈↓ ␈εn␈↓ ≡␈ε¬2
␈β≤␈↓ ↓H␈εαand␈↓ α∞␈ελV␈↓ α:␈εα=␈α
(␈↓ αt␈ελv␈↓ βG␈εα.␈αε.␈αε.␈↓ βw␈ελv␈↓ ∧∃␈εα)␈↓ ∧0␈εα.␈αNo␈α␈w␈αw␈α␈e␈αhav␈α␈e
␈β)␈↓ α"␈ε¬0␈↓ β∧␈εn␈↓ β⊗␈ε→␈␈ε¬1␈↓ ∧π␈ε¬0␈↓ ∧!␈ε¬2
␈βa␈↓ βP␈ε¬2␈↓ β↑␈εn␈↓ ∧6␈εn␈↓ ¬b␈εn␈↓ λm␈εn
␈βg␈↓ αQ␈ελu␈↓ αg␈ελv␈↓ β∧␈εα=␈α
(␈↓ β>␈εα2␈↓ βx␈εα+␈↓ ∧$␈εα2␈↓ ∧H␈εα)␈↓ ∧T␈ελU␈↓ ∧y␈ελV␈↓ ¬$␈εα+␈↓ ¬P␈εα2␈↓ ¬t␈εα(␈↓ ε␈ελU␈↓ ε-␈ε⊗␈␈↓ εY␈ελU␈↓ ε}␈εα)(␈↓ π⊗␈ελV␈↓ πA␈ε⊗␈␈↓ πm␈ελV␈↓ λ∂␈εα)␈αλ+␈αλ(␈↓ λ[␈εα2␈↓ π␈εα+␈αλ1)␈↓ Q␈ελU␈↓ v␈ελV␈↓
→␈εα.␈↓ α␈εα(2)
␈βu␈↓ ∧k␈ε¬1␈↓ ¬
␈ε¬1␈↓ ε↔␈ε¬1␈↓ εp␈ε¬0␈↓ π*␈ε¬0␈↓ λ↓␈ε¬1␈↓ h␈ε¬0␈↓
␈ε¬0
␈β3␈↓ ↓H␈εαThis␈α
form␈α␈ula␈α
reduces␈α
the␈α∞problem␈α
of␈α
m␈α␈ultiplying␈α∞2␈↓ πo␈ελn␈↓ λ∧␈εα-bit␈α∞n␈α␈um␈α␈bers␈α
to␈α
three␈α
m␈α␈ul-
␈β↑␈↓ ↓H␈εαtiplications␈α
of␈↓ β.␈ελn␈↓ βD␈εα-bit␈α
n␈α␈um␈α␈bers,␈α∞namely␈↓ ε$␈ελU␈↓ εI␈ελV␈↓ εl␈εα,␈α
(␈↓ π∂␈ελU␈↓ π>␈ε⊗␈␈↓ πj␈ελU␈↓ λ⊂␈εα)(␈↓ λ(␈ελV␈↓ λS␈ε⊗␈␈↓ ␈ελV␈↓ "␈εα),␈α∞and␈↓
␈ελU␈↓
2␈ελV␈↓
U␈εα,␈α
plus
␈βk␈↓ ε;␈ε¬1␈↓ ε]␈ε¬1␈↓ π&␈ε¬1␈↓ λ↓␈ε¬0␈↓ λ<␈ε¬0␈↓ ∀␈ε¬1␈↓
$␈ε¬0␈↓
F␈ε¬0
␈β
␈↓ ↓H␈εαsome␈αsimple␈αshifting␈αand␈αadding␈αoperations.
␈β
4␈↓ α␈εαForm␈α␈ula␈αε(2)␈απcan␈αεbe␈απused␈αεfor␈απdouble-precision␈αεm␈α␈ultiplication␈απwhen␈αεa␈αεquadruple-
␈β
`␈↓ ↓H␈εαprecision␈α result␈α is␈α
desired,␈α and␈α
it␈α is␈α just␈α
a␈α little␈α faster␈α
than␈α the␈α traditional␈α method
␈β∞␈↓ ↓H␈εαon␈α⊃man␈α␈y␈α⊃machines.␈α≥It␈α⊃is␈α∩more␈α⊃importan␈α␈t␈α⊃to␈α∩observ␈α␈e␈α⊃that␈α∩w␈α␈e␈α⊃can␈α∩use␈α⊃(2)␈α⊃to
␈β∞6␈↓ ↓H␈εαde|ne␈αa␈α
recursiv␈α␈e␈α
process␈αfor␈α
m␈α␈ultiplication␈α
that␈α
is␈αsigni|can␈α␈tly␈α
faster␈α
than␈αthe
␈β∞\␈↓ β@␈ε¬2
␈β∞a␈↓ ↓H␈εαfamiliar␈α
order-␈↓ β*␈ελn␈↓ βX␈εαmethod␈αwhen␈↓ ¬5␈ελn␈↓ ¬U␈εαis␈αlarge:␈αIf␈↓ ε{␈ελT␈↓ π∀␈εα(␈↓ π ␈ελn␈↓ π6␈εα)␈αis␈α
the␈α
time␈αrequired␈α
to␈α
perform
␈β∂␈↓ ↓H␈εαm␈α␈ultiplication␈αof␈↓ βY␈ελn␈↓ βn␈εα-bit␈αn␈α␈um␈α␈bers,␈αw␈α␈e␈αhav␈α␈e
␈β∂X␈↓ ¬→␈ελT␈↓ ¬2␈εα(2␈↓ ¬P␈ελn␈↓ ¬f␈εα)␈ε⊗␈α
∀␈εα␈α
3␈↓ ε<␈ελT␈↓ εU␈εα(␈↓ εa␈ελn␈↓ εw␈εα)␈αλ+␈↓ π7␈ελc␈↓ πE␈ελn␈↓ α␈εα(3)
␈β⊂$␈↓ ↓H␈εαfor␈αλsome␈α constan␈α␈t␈↓ βa␈ελc␈↓ βo␈εα,␈α since␈α the␈α righ␈α␈t-hand␈αλside␈α of␈α (2)␈αλuses␈α just␈α three␈αλm␈α␈ultiplications
␈β⊂O␈↓ ↓H␈εαplus␈αsome␈αadditions␈αand␈αshifts.␈αRelation␈α(3)␈αimplies␈αby␈αinduction␈αthat
␈β⊃∀␈↓ ¬␈εk␈↓ ¬␈␈εk␈↓ εS␈εk
␈β⊃~␈↓ ∧I␈ελT␈↓ ∧b␈εα(␈↓ ∧n␈εα2␈↓ ¬∞␈εα)␈ε⊗␈α
∀␈↓ ¬R␈ελc␈↓ ¬a␈εα(␈↓ ¬m␈εα3␈↓ ε∃␈ε⊗␈␈↓ εA␈εα2␈↓ εb␈εα),␈↓ πF␈ελk␈↓ πa␈ε⊗∃␈εα␈α
1,␈↓ α␈εα(4)
␈β∪(
␈β↓Y␈↓ ↓H␈εα276␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ ↓H␈εαif␈α
w␈α␈e␈α
choose␈↓ β␈ελc␈↓ β#␈εαto␈α
be␈α
large␈α
enough␈α
so␈α
that␈αthis␈α
inequality␈α
is␈α
valid␈α
when␈↓
α␈ελk␈↓
≡␈εα=␈α
1;␈α
and
␈βαS␈↓ ↓H␈εαtherefore␈αw␈α␈e␈αhav␈α␈e
␈ββ≠␈↓ ¬/␈ε→d␈↓ ¬:␈ε¬lg␈↓ ¬U␈εn␈↓ ¬g␈ε→e␈↓ εc␈ε→d␈↓ εn␈ε¬lg␈↓ π ␈εn␈↓ π≠␈ε→e␈↓ πl␈ε→d␈↓ πw␈ε¬lg␈↓ λ∪␈εn␈↓ λ%␈ε→e
␈ββ!␈↓ βy␈ελT␈↓ ∧∩␈εα(␈↓ ∧≡␈ελn␈↓ ∧4␈εα)␈ε⊗␈α
∀␈↓ ∧x␈ελT␈↓ ¬⊃␈εα(␈↓ ¬≥␈εα2␈↓ ¬s␈εα)␈↓ ε ␈ε⊗∀␈↓ ε7␈ελc␈↓ εE␈εα(␈↓ εQ␈εα3␈↓ π.␈ε⊗␈␈↓ πZ␈εα2␈↓ λ0␈εα)
␈ββQ␈↓ πβ␈ε¬lg␈↓ π≡␈εn␈↓ λ≡␈ε¬lg␈↓ λ9␈ε¬3
␈ββW␈↓ ε ␈ε⊗∀␈εα␈α
3␈↓ εI␈ελc␈↓ ε←␈ε⊗↓␈↓ εq␈εα3␈↓ π:␈εα=␈α
3␈↓ πz␈ελc␈↓ λλ␈ελn␈↓ λG␈εα.␈↓ α␈εα(5)
␈β∧+␈↓ ↓H␈εαRelation␈α
(5)␈αsho␈α␈ws␈αthat␈αthe␈αrunning␈αtime␈α
for␈αm␈α␈ultiplication␈αcan␈αbe␈αreduced␈α
from
␈β∧Q␈↓ α;␈ε¬2␈↓ βr␈ε¬lg␈↓ ∧∞␈ε¬3␈↓ ∧j␈ε¬1.58␈α↓5
␈β∧V␈↓ ↓H␈εαorder␈↓ α%␈ελn␈↓ αT␈εαto␈αorder␈↓ β]␈ελn␈↓ ∧&␈ε⊗→␈↓ ∧T␈ελn␈↓ ¬+␈εα,␈αso␈αthe␈αrecursiv␈α␈e␈αmethod␈αis␈αm␈α␈uch␈αfaster␈αthan␈αthe
␈β¬α␈↓ ↓H␈εαtraditional␈αmethod␈αwhen␈↓ ∧Z␈ελn␈↓ ∧{␈εαis␈αlarge.
␈β¬-␈↓ α␈εα(A␈αsimilar␈αbut␈αmore␈αcomplicated␈αmethod␈αfor␈αdoing␈αm␈α␈ultiplication␈αwith␈αrun-
␈β¬S␈↓ βu␈ε¬lg␈↓ ∧⊂␈ε¬3
␈β¬X␈↓ ↓H␈εαning␈απtime␈απof␈αλorder␈↓ β←␈ελn␈↓ ∧&␈εαwas␈απapparen␈α␈tly␈αλ|rst␈απsuggested␈αλby␈απA.␈αλKaratsuba␈απin␈ε∂␈απDoklady
␈βεβ␈↓ ↓H␈ε∂Akad.␈α∞Nauk␈α∞SSSR␈ε∩␈α∂145␈εα␈α∞(1962),␈α∂293↑294␈α∞[English␈α∞translation␈α∂in␈ε∂␈α∞So␈α␈viet␈α∞Ph␈α␈ysics↑
␈βε.␈↓ ↓H␈ε∂Doklady␈ε∩␈α∂7␈εα␈α∂(1963),␈α⊂595↑596].␈α∃Curiously,␈α⊂this␈α∂idea␈α⊂does␈α∂not␈α∂seem␈α∂to␈α∂hav␈α␈e␈α∂been
␈βεZ␈↓ ↓H␈εαdisco␈α␈v␈α␈ered␈α∂before␈α⊂1962;␈α∩none␈α⊂of␈α∂the␈α⊂\calculating␈α⊂prodigies"␈α⊂who␈α⊂hav␈α␈e␈α∂become
␈βπ¬␈↓ ↓H␈εαfamous␈αfor␈αtheir␈αability␈αto␈αm␈α␈ultiply␈α
large␈αn␈α␈um␈α␈bers␈αmen␈α␈tally␈αhav␈α␈e␈αbeen␈αreported
␈βπ0␈↓ ↓H␈εαto␈α use␈α an␈α␈y␈α such␈α
method,␈α
although␈α form␈α␈ula␈α (2)␈α adapted␈α
to␈α decimal␈α notation␈α w␈α␈ould
␈βπ[␈↓ ↓H␈εαseem␈αto␈α
lead␈α
to␈αa␈α
reasonably␈α
easy␈αway␈α
to␈α
m␈α␈ultiply␈αeigh␈α␈t-digit␈α
n␈α␈um␈α␈bers␈α
in␈αone's
␈βλε␈↓ ↓H␈εαhead.)
␈βλ2␈↓ α␈εαThe␈αrunning␈αtime␈α
can␈αbe␈αreduced␈αstill␈αfurther,␈α
in␈αthe␈αlimit␈αas␈↓ ]␈ελn␈↓ }␈εαapproaches
␈βλ]␈↓ ↓H␈εαin|nity,␈α∞if␈α∞w␈α␈e␈α∞observ␈α␈e␈α∞that␈α∞the␈α∞method␈α∞just␈α∞used␈α∞is␈α∞essen␈α␈tially␈α∞the␈α
special␈α∞case
␈β λ␈↓ ↓H␈ελr␈↓ ↓a␈εα=␈α
1␈αof␈αa␈αmore␈αgeneral␈αmethod␈αthat␈αyields
␈β =␈↓ ∧L␈ε↓␈␈↓ ¬]␈ε↓↓
␈β \␈↓ ∧2␈ελT␈↓ ∧Z␈εα(␈↓ ∧f␈ελr␈↓ ∧⎇␈εα+␈αλ1)␈↓ ¬G␈ελn␈↓ ¬u␈ε⊗∀␈εα␈α
(2␈↓ εA␈ελr␈↓ εY␈εα+␈αλ1)␈↓ π#␈ελT␈↓ π<␈εα(␈↓ πH␈ελn␈↓ π↑␈εα)␈αλ+␈↓ λ≡␈ελc␈↓ λ,␈ελn␈↓ α␈εα(6)
␈β
1␈↓ ↓H␈εαfor␈αan␈α␈y␈α|x␈α␈ed␈↓ β≤␈ελr␈↓ β+␈εα.␈αThis␈αmore␈αgeneral␈αmethod␈αcan␈αbe␈αobtained␈αas␈αfollo␈α␈ws:␈αLet
␈β¬␈↓ αP␈ελu␈↓ αp␈εα=␈α
(␈↓ β*␈ελu␈↓ ∧M␈εα.␈αε.␈αε.␈↓ ∧⎇␈ελu␈↓ ¬ ␈ελu␈↓ ¬C␈εα)␈↓ ε&␈εαand␈↓ π(␈ελv␈↓ πD␈εα=␈α
(␈↓ π}␈ελv␈↓ ≥␈εα.␈αε.␈αε.␈↓ M␈ελv␈↓ k␈ελv␈↓
␈εα)
␈β∩␈↓ ¬∩␈ε¬1␈↓ ¬5␈ε¬0␈↓ ¬O␈ε¬2␈↓ ]␈ε¬1␈↓ {␈ε¬0␈↓
∃␈ε¬2
␈β∪␈↓ β>␈ε¬(␈↓ βH␈εr␈↓ βU␈ε¬+1␈α↓)␈↓ ∧
␈εn␈↓ ∧≤␈ε→␈␈ε¬1␈↓ λ∞␈ε¬(␈↓ λ_␈εr␈↓ λ%␈ε¬+1)␈↓ λZ␈εn␈↓ λl␈ε→␈␈ε¬1
␈βY␈↓ ↓H␈εαbe␈αbrok␈α␈en␈αin␈α␈to␈↓ β8␈ελr␈↓ βO␈εα+␈αλ1␈αpieces,
␈β'␈↓ β;␈εr␈↓ βH␈εn␈↓ ¬$␈εn␈↓ πe␈εr␈↓ πr␈εn␈↓ K␈εn
␈β.␈↓ α7␈ελu␈↓ αW␈εα=␈↓ β¬␈ελU␈↓ β)␈εα2␈↓ βb␈εα+␈↓ ∧∞␈ε⊗↓␈αε↓␈αε↓␈↓ ∧@␈εα+␈↓ ∧l␈ελU␈↓ ¬∩␈εα2␈↓ ¬>␈εα+␈↓ ¬j␈ελU␈↓ ε∂␈εα,␈↓ εg␈ελv␈↓ π∧␈εα=␈↓ π2␈ελV␈↓ πS␈εα2␈↓ λ␈εα+␈↓ λ8␈ε⊗↓␈αε↓␈αε↓␈↓ λj␈εα+␈↓ ⊗␈ελV␈↓ 9␈εα2␈↓ e␈εα+␈↓
⊃␈ελV␈↓
3␈εα,␈↓ α␈εα(7)
␈β;␈↓ β≤␈εr␈↓ ¬β␈ε¬1␈↓ ε↓␈ε¬0␈↓ πF␈εr␈↓ *␈ε¬1␈↓
%␈ε¬0
␈β
α␈↓ ↓H␈εαwhere␈αeach␈↓ βα␈ελU␈↓ β2␈εαand␈αeach␈↓ ∧J␈ελV␈↓ ∧w␈εαis␈αan␈↓ ¬M␈ελn␈↓ ¬c␈εα-bit␈αn␈α␈um␈α␈ber.␈αConsider␈αthe␈αpolynomials
␈β
∂␈↓ β→␈εj␈↓ ∧↑␈εj
␈β
P␈↓ β↑␈εr␈↓ λ_␈εr
␈β
V␈↓ α'␈ελU␈↓ αE␈εα(␈↓ αQ␈ελx␈↓ αc␈εα)␈α
=␈↓ β'␈ελU␈↓ βL␈ελx␈↓ βt␈εα+␈↓ ∧ ␈ε⊗↓␈αε↓␈αε↓␈↓ ∧R␈εα+␈↓ ∧}␈ελU␈↓ ¬#␈ελx␈↓ ¬>␈εα+␈↓ ¬j␈ελU␈↓ ε∂␈εα,␈↓ εg␈ελV␈↓ π↓␈εα(␈↓ π
␈ελx␈↓ π ␈εα)␈α
=␈↓ πd␈ελV␈↓ λ¬␈ελx␈↓ λ.␈εα+␈↓ λZ␈ε⊗↓␈αε↓␈αε↓␈↓ ␈εα+␈↓ 8␈ελV␈↓ Z␈ελx␈↓ u␈εα+␈↓
!␈ελV␈↓
C␈εα,␈↓ α␈εα(8)
␈β
d␈↓ β>␈εr␈↓ ¬∃␈ε¬1␈↓ ε↓␈ε¬0␈↓ πx␈εr␈↓ L␈ε¬1␈↓
5␈ε¬0
␈β∞*␈↓ ↓H␈εαand␈αlet
␈β∞P␈↓ ε[␈ε¬2␈↓ εi␈εr
␈β∞V␈↓ βB␈ελW␈↓ βf␈εα(␈↓ βr␈ελx␈↓ ∧¬␈εα)␈α
=␈↓ ∧I␈ελU␈↓ ∧g␈εα(␈↓ ∧s␈ελx␈↓ ¬¬␈εα)␈↓ ¬⊃␈ελV␈↓ ¬+␈εα(␈↓ ¬7␈ελx␈↓ ¬J␈εα)␈α
=␈↓ ε∞␈ελW␈↓ εH␈ελx␈↓ ε}␈εα+␈↓ π*␈ε⊗↓␈αε↓␈αε↓␈↓ π\␈εα+␈↓ λλ␈ελW␈↓ λ5␈ελx␈↓ λP␈εα+␈↓ λ|␈ελW␈↓ (␈εα.␈↓ α␈εα(9)
␈β∞c␈↓ ε,␈ε¬2␈↓ ε:␈εr␈↓ λ&␈ε¬1␈↓ ~␈ε¬0
␈β∂∀␈↓ β6␈εn␈↓ ¬2␈εn␈↓ λ≥␈εn
␈β∂→␈↓ ↓H␈εαSince␈↓ α'␈ελu␈↓ αJ␈εα=␈↓ αz␈ελU␈↓ β_␈εα(␈↓ β$␈εα2␈↓ βH␈εα)␈α∞and␈↓ ∧)␈ελv␈↓ ∧I␈εα=␈↓ ∧z␈ελV␈↓ ¬∀␈εα(␈↓ ¬ ␈εα2␈↓ ¬D␈εα),␈α∞w␈α␈e␈α
hav␈α␈e␈↓ εu␈ελu␈↓ π␈ελv␈↓ π*␈εα=␈↓ π[␈ελW␈↓ π␈␈εα(␈↓ λ␈εα2␈↓ λ/␈εα),␈α∞so␈α
w␈α␈e␈α∞can␈α∞easily␈α
com-
␈β∂D␈↓ ↓H␈εαpute␈↓ α~␈ελu␈↓ α0␈ελv␈↓ αO␈εαif␈αw␈α␈e␈αkno␈α␈w␈αthe␈α
coe}cien␈α␈ts␈αof␈↓ ε#␈ελW␈↓ εG␈εα(␈↓ εS␈ελx␈↓ εf␈εα).␈α
The␈αproblem␈αis␈αto␈α
|nd␈αa␈αgood␈αway
␈β∂p␈↓ ↓H␈εαto␈α
compute␈α∞the␈α∞coe}cien␈α␈ts␈α∞of␈↓ ¬,␈ελW␈↓ ¬P␈εα(␈↓ ¬\␈ελx␈↓ ¬o␈εα)␈α
by␈α∞using␈α∞only␈α∞2␈↓ λα␈ελr␈↓ λ≠␈εα+␈α 1␈α∞m␈α␈ultiplications␈α∞of␈↓ ␈ελn␈↓ ␈εα-
␈β⊂≠␈↓ ↓H␈εαbit␈α∞n␈α␈um␈α␈bers␈α∂plus␈α∞some␈α∂further␈α∂operations␈α∞that␈α∂in␈α␈v␈α␈olv␈α␈e␈α∂only␈α∞an␈α∂ex␈α␈ecution␈α∞time
␈β⊂F␈↓ ↓H␈εαproportional␈αto␈↓ βB␈ελn␈↓ βW␈εα.␈αThis␈αcan␈αbe␈αdone␈αby␈αcomputing
␈β⊃~␈↓ ↓H␈ελU␈↓ ↓e␈εα(0)␈↓ α∂␈ελV␈↓ α)␈εα(0)␈α
=␈↓ β␈ελW␈↓ β/␈εα(0),␈↓ ∧
␈ελU␈↓ ∧+␈εα(1)␈↓ ∧U␈ελV␈↓ ∧o␈εα(1)␈α
=␈↓ ¬Q␈ελW␈↓ ¬u␈εα(1),␈↓ εS␈εα.␈αε.␈αε.␈↓ πβ␈εα,␈↓ π7␈ελU␈↓ πT␈εα(2␈↓ πr␈ελr␈↓ λα␈εα)␈↓ λ∞␈ελV␈↓ λ(␈εα(2␈↓ λF␈ελr␈↓ λV␈εα)␈α
=␈↓ ~␈ελW␈↓ >␈εα(2␈↓ \␈ελr␈↓ l␈εα).␈↓
p␈εα(10)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα277
␈βα(␈↓ ↓H␈εαThe␈απcoe}cien␈α␈ts␈απof␈απa␈αλpolynomial␈απof␈απdegree␈απ2␈↓ εS␈ελr␈↓ εj␈εαcan␈απbe␈αλwritten␈απas␈απa␈απlinear␈απcom␈α␈bination
␈βαS␈↓ ↓H␈εαof␈αλthe␈α values␈αλof␈α that␈α polynomial␈αλat␈α 2␈↓ ¬v␈ελr␈↓ ε ␈εα+␈α∧1␈αλdistinct␈α poin␈α␈ts;␈α
computing␈αλsuch␈α a␈αλlinear
␈βα}␈↓ ↓H␈εαcom␈α␈bination␈α∂requires␈α∂an␈α∂ex␈α␈ecution␈α⊂time␈α∂at␈α∂most␈α∂proportional␈α⊂to␈↓ [␈ελn␈↓ q␈εα.␈α∃(Actually,
␈ββ*␈↓ ↓H␈εαthe␈α
products␈↓ β≤␈ελU␈↓ β:␈εα(␈↓ βF␈ελj␈↓ βV␈εα)␈↓ βb␈ελV␈↓ β|␈εα(␈↓ ∧λ␈ελj␈↓ ∧→␈εα)␈α
are␈α
not␈α∞strictly␈α
products␈α∞of␈↓ πo␈ελn␈↓ λ¬␈εα-bit␈α
n␈α␈um␈α␈bers,␈α∞but␈α
they␈α
are
␈ββU␈↓ ↓H␈εαproducts␈α
of␈α
at␈αmost␈α
(␈↓ ∧∂␈ελn␈↓ ∧*␈εα+␈↓ ∧T␈ελt␈↓ ∧a␈εα)-bit␈α
n␈α␈um␈α␈bers,␈αwhere␈↓ π.␈ελt␈↓ πF␈εαis␈α
a␈α
|x␈α␈ed␈αvalue␈α
depending␈α
on␈↓ ∪␈ελr␈↓ "␈εα.
␈β∧␈↓ ↓H␈εαIt␈α
is␈αeasy␈αto␈α
design␈αa␈αm␈α␈ultiplication␈αroutine␈α
for␈α(␈↓ π5␈ελn␈↓ πQ␈εα+␈↓ π{␈ελt␈↓ λλ␈εα)-bit␈αn␈α␈um␈α␈bers␈αthat␈α
requires
␈β∧+␈↓ ↓H␈εαonly␈↓ α∃␈ελT␈↓ α.␈εα(␈↓ α:␈ελn␈↓ αP␈εα)␈α¬+␈↓ β ␈ελc␈↓ β%␈ελn␈↓ βD␈εαoperations,␈α
where␈↓ ¬`␈ελT␈↓ ¬y␈εα(␈↓ ε¬␈ελn␈↓ ε≠␈εα)␈α is␈α
the␈α n␈α␈um␈α␈ber␈α
of␈α operations␈α
needed␈α for␈↓ ␈ελn␈↓ ␈εα-
␈β∧9␈↓ β⊗␈ε¬1
␈β∧V␈↓ ↓H␈εαbit␈αm␈α␈ultiplications,␈αsince␈αt␈α␈w␈α␈o␈αproducts␈αof␈↓ εX␈ελt␈↓ εe␈εα-bit␈αby␈↓ π]␈ελn␈↓ πs␈εα-bit␈αn␈α␈um␈α␈bers␈αcan␈αbe␈αdone␈αin
␈β¬α␈↓ ↓H␈ελc␈↓ ↓c␈ελn␈↓ α¬␈εαoperations␈αwhen␈↓ ∧∩␈ελt␈↓ ∧+␈εαis␈α|x␈α␈ed.)␈α
Therefore␈αw␈α␈e␈αobtain␈α
a␈αmethod␈αof␈αm␈α␈ultiplication
␈β¬∂␈↓ ↓U␈ε¬2
␈β¬-␈↓ ↓H␈εαsatisfying␈α(6).
␈β¬R␈↓ εF␈ε¬lo␈α↓g␈↓ π→␈ε¬(␈α␈2␈↓ π1␈εr␈↓ π>␈ε¬+1)␈↓ λ\␈ε¬1+␈↓ π␈ε¬lo␈α↓g␈↓ ↑␈ε¬2
␈β¬X␈↓ α␈εαRelation␈α(6)␈αimplies␈αthat␈↓ ¬⊗␈ελT␈↓ ¬0␈εα(␈↓ ¬<␈ελn␈↓ ¬Q␈εα)␈ε⊗␈α
∀␈↓ ε∃␈ελc␈↓ ε1␈ελn␈↓ π⎇␈εα<␈↓ λ+␈ελc␈↓ λF␈ελn␈↓ m␈εα,␈αif␈αw␈α␈e␈α
argue
␈β¬↑␈↓ εk␈ε
r␈↓ εw␈επ+␈α␈1␈↓ ,␈ε
r␈↓ 8␈επ+␈α␈1
␈β¬e␈↓ ε"␈ε¬3␈↓ λ8␈ε¬3
␈βεβ␈↓ ↓H␈εαas␈αin␈αthe␈αderivation␈αof␈α(5),␈αso␈αw␈α␈e␈αhav␈α␈e␈αno␈α␈w␈αpro␈α␈v␈α␈ed␈αthe␈αfollo␈α␈wing␈αresult:
␈βε:␈↓ ↓H␈ε∩Theorem␈αA.␈ε∂␈α→Giv␈α␈en␈↓ ∧¬␈ελ∂␈↓ ∧≥␈εα>␈α
0␈ε∂,␈αthere␈αexists␈αa␈αm␈α␈ultiplication␈αalgorithm␈αsuch␈αthat␈αthe
␈βεe␈↓ ↓H␈ε∂n␈α␈um␈α␈ber␈α⊂of␈α⊂elemen␈α␈tary␈α⊂operations␈↓ ¬k␈ελT␈↓ ε∧␈εα(␈↓ ε⊂␈ελn␈↓ ε&␈εα)␈ε∂␈α⊂needed␈α⊂to␈α⊂m␈α␈ultiply␈α⊂t␈α␈w␈α␈o␈↓ K␈ελn␈↓ `␈ε∂-bit␈α⊂n␈α␈um␈α␈bers
␈βπ⊂␈↓ ↓H␈ε∂satis|es
␈βπ5␈↓ ε}␈ε¬1+␈↓ π)␈ε∂
␈βπ;␈↓ ¬5␈ελT␈↓ ¬N␈εα(␈↓ ¬Z␈ελn␈↓ ¬p␈εα)␈α
<␈↓ ε4␈ελc␈↓ εB␈εα(␈↓ εN␈ελ∂␈↓ ε\␈εα)␈↓ εh␈ελn␈↓ π5␈εα,␈↓
p␈εα(11)
␈βπu␈↓ ↓H␈ε∂for␈αsome␈αconstan␈α␈t␈↓ βk␈ελc␈↓ βy␈εα(␈↓ ∧¬␈ελ∂␈↓ ∧∪␈εα)␈ε∂␈αindependen␈α␈t␈αof␈↓ ε ␈ελn␈↓ ε5␈ε∂.
␈βπz␈↓ εg␈∧πzεg≠∂
␈βλ+␈↓ α␈εαThis␈α⊃theorem␈α⊂is␈α⊃still␈α⊃not␈α⊂the␈α⊃result␈α⊂w␈α␈e␈α⊃are␈α⊃after.␈α~It␈α⊂is␈α⊃unsatisfactory␈α⊂for
␈βλV␈↓ ↓H␈εαpractical␈α
purposes␈αin␈α
that␈αthe␈α
method␈αbecomes␈α
m␈α␈uch␈αmore␈α
complicated␈αas␈↓
T␈ελ∂␈↓
l␈ε⊗!␈εα␈α
0
␈β α␈↓ ↓H␈εα(and␈α
therefore␈α∞as␈↓ βb␈ελr␈↓ β}␈ε⊗!␈α
1␈εα),␈α∞causing␈↓ ¬x␈ελc␈↓ εε␈εα(␈↓ ε∩␈ελ∂␈↓ ε ␈εα)␈α∞to␈α
gro␈α␈w␈α∞so␈α
rapidly␈α∞that␈α
extremely␈α
h␈α␈uge
␈β -␈↓ ↓H␈εαvalues␈α
of␈↓ α\␈ελn␈↓ α|␈εαare␈α
needed␈α
before␈α
w␈α␈e␈α
hav␈α␈e␈α
an␈α␈y␈α
signi|can␈α␈t␈α
impro␈α␈v␈α␈emen␈α␈t␈α
o␈α␈v␈α␈er␈α
(5).␈αAnd
␈β X␈↓ ↓H␈εαit␈αis␈αunsatisfactory␈α
for␈αtheoretical␈αpurposes␈αbecause␈α
it␈αdoes␈αnot␈α
mak␈α␈e␈αuse␈αof␈αthe
␈β
β␈↓ ↓H␈εαfull␈α po␈α␈w␈α␈er␈α of␈α
the␈α polynomial␈α
method␈α on␈α which␈α
it␈α is␈α
based.␈αWe␈α can␈α
obtain␈α a␈α better
␈β
.␈↓ ↓H␈εαresult␈α if␈α w␈α␈e␈α let␈↓ β+␈ελr␈↓ βD␈ε∂vary␈εα␈α with␈↓ ∧d␈ελn␈↓ ∧z␈εα,␈α choosing␈α larger␈α and␈α
larger␈α values␈α of␈↓ 8␈ελr␈↓ Q␈εαas␈↓ z␈ελn␈↓
_␈εαincreases.
␈β
Z␈↓ ↓H␈εαThis␈α idea␈α
is␈α
due␈α
to␈α
A.␈α
L.␈α Toom␈α
[␈ε∂Doklady␈α
Akad.␈α
Nauk␈α
SSSR␈ε∩␈α 150␈εα␈α
(1963),␈α
496↑498,
␈β¬␈↓ ↓H␈εαEnglish␈αλtranslation␈αλin␈ε∂␈αλSo␈α␈viet␈α Mathematics␈ε∩␈αλ3␈εα␈αλ(1963),␈α 714↑716],␈α who␈α used␈αλit␈αλto␈αλsho␈α␈w
␈β0␈↓ ↓H␈εαthat␈α
computer␈α
circuitry␈α
for␈α
m␈α␈ultiplication␈α
of␈↓ π↔␈ελn␈↓ π,␈εα-bit␈α
n␈α␈um␈α␈bers␈α
can␈α
be␈α
constructed
␈β[␈↓ ↓H␈εαin␈α␈v␈α␈olving␈αa␈α
fairly␈α
small␈α
n␈α␈um␈α␈ber␈α
of␈α
componen␈α␈ts␈αas␈↓ πc␈ελn␈↓ λε␈εαgro␈α␈ws.␈α∞S.␈α
A.␈α
Cook␈α
[␈ε∂On␈αthe
␈βε␈↓ ↓H␈ε∂minim␈α␈um␈α computation␈α
time␈α
of␈α functions␈εα␈α
(Thesis,␈α
Harvard␈α
Univ␈α␈ersity,␈α
1966),␈α
51↑
␈β2␈↓ ↓H␈εα77]␈α later␈α
sho␈α␈w␈α␈ed␈α
ho␈α␈w␈α Toom's␈α
method␈α
can␈α be␈α
adapted␈α to␈α
fast␈α
computer␈α programs.
␈β]␈↓ α␈εαBefore␈αλw␈α␈e␈α discuss␈αλthe␈αλToom↑Cook␈α algorithm␈αλan␈α␈y␈αλfurther,␈α let␈α us␈αλstudy␈αλa␈αλsmall
␈β
λ␈↓ ↓H␈εαexample␈α
of␈α∞the␈α
transition␈α
from␈↓ ¬?␈ελU␈↓ ¬]␈εα(␈↓ ¬i␈ελx␈↓ ¬{␈εα)␈α∞and␈↓ ε\␈ελV␈↓ εv␈εα(␈↓ πα␈ελx␈↓ π∃␈εα)␈α
to␈α∞the␈α
coe}cien␈α␈ts␈α∞of␈↓ ⎇␈ελW␈↓
!␈εα(␈↓
-␈ελx␈↓
@␈εα).␈α⊂This
␈β
3␈↓ ↓H␈εαexample␈α∞will␈α∂not␈α∞demonstrate␈α∂the␈α∞e}ciency␈α∂of␈α∂the␈α∞method,␈α∂since␈α∂the␈α∞n␈α␈um␈α␈bers
␈β
↑␈↓ ↓H␈εαare␈αtoo␈αsmall,␈αbut␈αit␈αpoin␈α␈ts␈αout␈α
some␈αuseful␈αsimpli|cations␈αthat␈αw␈α␈e␈αcan␈αmak␈α␈e␈αin
␈β∞
␈↓ ↓H␈εαthe␈α
general␈αcase.␈α∂Suppose␈α
that␈α
w␈α␈e␈α
wan␈α␈t␈α
to␈αm␈α␈ultiply␈↓ λε␈ελu␈↓ λ'␈εα=␈α1234␈α
times␈↓
␈ελv␈↓
+␈εα=␈α2341;
␈β∞5␈↓ ↓H␈εαin␈α∞binary␈α∞notation␈α∞this␈α∞is␈↓ ∧i␈ελu␈↓ ¬␈εα=␈α
(0100␈α
1101␈α 0010␈↓ π4␈εα)␈↓ π]␈εαtimes␈↓ λ?␈ελv␈↓ λ`␈εα=␈α
(1001␈α
0010␈α 0101␈↓ λ␈εα)␈↓ "␈εα.
␈β∞B␈↓ π@␈ε¬2␈↓ ∀␈ε¬2
␈β∞`␈↓ ↓H␈εαLet␈↓ α
␈ελr␈↓ α#␈εα=␈α
2;␈αthe␈αpolynomials␈↓ ∧␈␈ελU␈↓ ¬≥␈εα(␈↓ ¬)␈ελx␈↓ ¬<␈εα),␈↓ ¬↑␈ελV␈↓ ¬x␈εα(␈↓ ε∧␈ελx␈↓ ε↔␈εα)␈αin␈α(8)␈αare
␈β∂→␈↓ ∧U␈ε¬2␈↓ λ
␈ε¬2
␈β∂∨␈↓ β/␈ελU␈↓ βM␈εα(␈↓ βY␈ελx␈↓ βl␈εα)␈α
=␈α
4␈↓ ∧B␈ελx␈↓ ∧k␈εα+␈αλ13␈↓ ¬;␈ελx␈↓ ¬V␈εα+␈αλ2,␈↓ εl␈ελV␈↓ πε␈εα(␈↓ π∩␈ελx␈↓ π%␈εα)␈α
=␈α
9␈↓ π{␈ελx␈↓ λ$␈εα+␈αλ2␈↓ λb␈ελx␈↓ λ⎇␈εα+␈αλ5.
␈β∂↑␈↓ ↓H␈εαHence␈αw␈α␈e␈α|nd,␈αfor␈↓ βq␈ελW␈↓ ∧∃␈εα(␈↓ ∧!␈ελx␈↓ ∧3␈εα)␈α
=␈↓ ∧w␈ελU␈↓ ¬∃␈εα(␈↓ ¬!␈ελx␈↓ ¬4␈εα)␈↓ ¬@␈ελV␈↓ ¬Z␈εα(␈↓ ¬f␈ελx␈↓ ¬y␈εα),
␈β⊂→␈↓ ↓N␈ελU␈↓ ↓l␈εα(0)␈α
=␈↓ α`␈εα2,␈↓ β6␈ελU␈↓ βT␈εα(1)␈α
=␈↓ ∧H␈εα19,␈↓ ¬0␈ελU␈↓ ¬N␈εα(2)␈α
=␈↓ εT␈εα44,␈↓ π=␈ελU␈↓ πZ␈εα(3)␈α
=␈↓ λ`␈εα77,␈↓ I␈ελU␈↓ f␈εα(4)␈α
=␈↓
l␈εα118;
␈β⊂D␈↓ ↓R␈ελV␈↓ ↓l␈εα(0)␈α
=␈↓ α`␈εα5,␈↓ β:␈ελV␈↓ βT␈εα(1)␈α
=␈↓ ∧H␈εα16,␈↓ ¬4␈ελV␈↓ ¬N␈εα(2)␈α
=␈↓ εT␈εα45,␈↓ π@␈ελV␈↓ πZ␈εα(3)␈α
=␈↓ λ`␈εα92,␈↓ L␈ελV␈↓ f␈εα(4)␈α
=␈↓
l␈εα157;
␈β⊂o␈↓ ↓H␈ελW␈↓ ↓l␈εα(0)␈α
=␈↓ αN␈εα10,␈↓ β0␈ελW␈↓ βT␈εα(1)␈α
=␈↓ ∧6␈εα304,␈↓ ¬*␈ελW␈↓ ¬N␈εα(2)␈α
=␈↓ ε0␈εα1980,␈↓ π6␈ελW␈↓ πZ␈εα(3)␈α
=␈↓ λ<␈εα7084,␈↓ B␈ελW␈↓ f␈εα(4)␈α
=␈↓
H␈εα18526.
␈β⊃~␈↓
p␈εα(12)
␈β∪(
␈β↓Y␈↓ ↓H␈εα278␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα&␈↓ ↓H␈εαOur␈αλjob␈α no␈α␈w␈α is␈α to␈α compute␈αλthe␈α |v␈α␈e␈α coe}cien␈α␈ts␈α of␈↓ π=␈ελW␈↓ πa␈εα(␈↓ πm␈ελx␈↓ π␈␈εα)␈α from␈α the␈α latter␈α |v␈α␈e␈αλvalues.
␈βαQ␈↓ α␈εαThere␈α⊃is␈α∩an␈α⊃attractiv␈α␈e␈α∩little␈α⊃algorithm␈α∩that␈α⊃can␈α∩be␈α⊃used␈α∩to␈α⊃compute␈α⊃the
␈βαx␈↓ π␈εm␈↓ π&␈ε→␈␈ε¬1
␈βα⎇␈↓ ↓H␈εαcoe}cien␈α␈ts␈α∞of␈α∞a␈α∞polynomial␈↓ ¬λ␈ελW␈↓ ¬,␈εα(␈↓ ¬8␈ελx␈↓ ¬K␈εα)␈α
=␈↓ ε⊗␈ελW␈↓ εy␈ελx␈↓ π[␈εα+␈↓ λλ␈ε⊗↓␈αε↓␈αε↓␈↓ λ<␈εα+␈↓ λi␈ελW␈↓ ⊗␈ελx␈↓ 2␈εα+␈↓ ←␈ελW␈↓
~␈εαwhen␈α∞the
␈ββ
␈↓ ε4␈εm␈↓ εN␈ε→␈␈ε¬1␈↓ π␈ε¬1␈↓ ⎇␈ε¬0
␈ββ(␈↓ ↓H␈εαvalues␈↓ α6␈ελW␈↓ αZ␈εα(0),␈↓ β∀␈ελW␈↓ β8␈εα(1),␈↓ βr␈εα.␈αε.␈αε.␈↓ ∧"␈εα,␈↓ ∧2␈ελW␈↓ ∧U␈εα(␈↓ ∧a␈ελm␈↓ ¬ ␈ε⊗␈␈εα␈αλ1)␈αare␈αgiv␈α␈en:␈αLet␈αus␈α|rst␈αwrite
␈ββp␈↓ ¬␈εm␈↓ ¬%␈ε→␈␈ε¬1␈↓ εl␈εm␈↓ πε␈ε→␈␈ε¬2␈↓ λp␈ε¬1
␈ββv␈↓ β≥␈ελW␈↓ βA␈εα(␈↓ βM␈ελx␈↓ β`␈εα)␈α
=␈↓ ∧$␈ελ∩␈↓ ∧y␈ελx␈↓ ¬X␈εα+␈↓ ε∧␈ελ∩␈↓ εY␈ελx␈↓ π9␈εα+␈↓ πe␈ε⊗↓␈αε↓␈αε↓␈↓ λ↔␈εα+␈↓ λC␈ελ∩␈↓ λ]␈ελx␈↓ π␈εα+␈↓ 3␈ελ∩␈↓ M␈εα,␈↓
p␈εα(13)
␈β∧β␈↓ ∧0␈εm␈↓ ∧J␈ε→␈␈ε¬1␈↓ ε⊂␈εm␈↓ ε*␈ε→␈␈ε¬2␈↓ λO␈ε¬1␈↓ ?␈ε¬0
␈β∧¬␈↓ ¬␈∧∧¬¬αF␈↓ εl␈∧∧¬εlαF␈↓ λp␈∧∧¬λpα∂
␈β∧?␈↓ αC␈εk
␈β∧D␈↓ ↓H␈εαwhere␈↓ α0␈ελx␈↓ α]␈εα=␈↓ β␈ελx␈↓ β∨␈εα(␈↓ β+␈ελx␈↓ βF␈ε⊗␈␈εα␈α 1)␈↓ ∧↔␈εα.␈αε.␈αε.␈↓ ∧G␈εα(␈↓ ∧S␈ελx␈↓ ∧n␈ε⊗␈␈↓ ¬≠␈ελk␈↓ ¬5␈εα+␈α 1),␈α
and␈αwhere␈α
the␈α
coe}cien␈α␈ts␈↓ ;␈ελ∩␈↓ a␈εαare␈αunkno␈α␈wn
␈β∧Q␈↓ G␈εj
␈β∧T␈↓ αC␈∧∧TαCα∂
␈β∧o␈↓ ↓H␈εαas␈αw␈α␈ell␈αas␈αthe␈↓ β'␈ελW␈↓ βR␈εα.␈αNo␈α␈w
␈β∧|␈↓ βE␈εj
␈β¬7␈↓ ε'␈εm␈↓ εA␈ε→␈␈ε¬2␈↓ ε␈εm␈↓ ␈ε→␈␈ε¬␈α␈3
␈β¬=␈↓ ↓s␈ελW␈↓ α↔␈εα(␈↓ α#␈ελx␈↓ α>␈εα+␈αλ1)␈ε⊗␈αλ␈␈↓ β<␈ελW␈↓ β`␈εα(␈↓ βl␈ελx␈↓ β}␈εα)␈α
=␈α
(␈↓ ∧N␈ελm␈↓ ∧v␈ε⊗␈␈εα␈αλ1)␈↓ ¬@␈ελ∩␈↓ ε∃␈ελx␈↓ εu␈εα+␈αλ(␈↓ π-␈ελm␈↓ πT␈ε⊗␈␈εα␈αλ2)␈↓ λ≡␈ελ∩␈↓ λs␈ελx␈↓ S␈εα+␈↓ ␈␈ε⊗↓␈αε↓␈αε↓␈↓
1␈εα+␈↓
]␈ελ∩␈↓
w␈εα,
␈β¬J␈↓ ¬L␈εm␈↓ ¬f␈ε→␈␈ε¬1␈↓ λ*␈εm␈↓ λD␈ε→␈␈ε¬2␈↓
i␈ε¬1
␈β¬L␈↓ ε'␈∧¬Lε'αF␈↓ ε␈∧¬L εαF
␈βε␈↓ ↓H␈εαand␈αby␈αinduction␈αw␈α␈e␈α|nd␈αthat␈αfor␈αall␈↓ ε↔␈ελk␈↓ ε2␈ε⊗∃␈εα␈α
0
␈βεR␈↓ ↓⎇␈ε↓ ␈↓
C␈ε↓!
␈βε]␈↓ βQ␈ε↓∩␈↓ βy␈ε↓∪␈↓ ε¬␈ε↓∩␈↓ ε-␈ε↓∪
␈βε`␈↓ ↓c␈εα1␈↓ βg␈ελk␈↓ ε≤␈ελk
␈βεq␈↓ f␈εk
␈βεw␈↓ α∀␈ελW␈↓ α8␈εα(␈↓ αD␈ελx␈↓ αY␈εα+␈↓ α␈␈ελk␈↓ β⊃␈εα)␈ε⊗␈αλ␈␈↓ ∧∂␈ελW␈↓ ∧3␈εα(␈↓ ∧?␈ελx␈↓ ∧T␈εα+␈↓ ∧z␈ελk␈↓ ¬
␈ε⊗␈␈εα␈αα1)␈αλ+␈↓ εC␈ελW␈↓ εg␈εα(␈↓ εs␈ελx␈↓ πλ␈εα+␈↓ π.␈ελk␈↓ πB␈ε⊗␈␈εα␈αα2)␈ε⊗␈αλ␈␈↓ λ:␈ε⊗↓␈αε↓␈αε↓␈↓ λl␈εα+␈αλ(␈ε⊗␈␈εα1␈↓ Z␈εα)␈↓ u␈ελW␈↓
_␈εα(␈↓
$␈ελx␈↓
7␈εα)
␈βππ␈↓ ↓↑␈∧ππ↓↑α≤
␈βπ∂␈↓ ↓↑␈ελk␈↓ ↓o␈εα!␈↓ βg␈εα1␈↓ ε≠␈εα2
␈βπP␈↓ α>␈ε↓∩␈↓ β9␈ε↓∪␈↓ ¬a␈ε↓∩␈↓ ε]␈ε↓∪␈↓ c␈ε↓∩␈↓
␈ε↓∪
␈βπS␈↓ αT␈ελm␈↓ α{␈ε⊗␈␈εα␈αλ1␈↓ ¬w␈ελm␈↓ ε∨␈ε⊗␈␈εα␈αλ2␈↓ y␈ελk
␈βπd␈↓ ∧=␈εm␈↓ ∧W␈ε→␈␈ε¬1␈ε→␈␈↓ ¬∨␈εk␈↓ π`␈εm␈↓ πz␈ε→␈␈ε¬2␈ε→␈α↓␈␈↓ λB␈εk
␈βπj␈↓ α⊂␈εα=␈↓ βU␈ελ∩␈↓ ∧*␈ελx␈↓ ¬5␈εα+␈↓ εy␈ελ∩␈↓ πN␈ελx␈↓ λY␈εα+␈↓ ¬␈ε⊗↓␈αε↓␈αε↓␈↓ 7␈εα+␈↓
'␈ελ∩␈↓
A␈εα.␈α%(14)
␈βπx␈↓ βa␈εm␈↓ β{␈ε→␈␈ε¬1␈↓ π¬␈εm␈↓ π∨␈ε→␈␈ε¬2␈↓
3␈εk
␈βπy␈↓ ∧=␈∧πy∧=αq␈↓ π`␈∧πyπ`αq
␈βλβ␈↓ α}␈ελk␈↓ ε!␈ελk␈↓ y␈ελk
␈βλL␈↓ π%␈εk
␈βλQ␈↓ ↓H␈εαDenoting␈αthe␈αleft-hand␈αside␈αof␈α(14)␈αby␈α(1/␈↓ εZ␈ελk␈↓ εk␈εα!)␈↓ ππ␈εα↓␈↓ π:␈ελW␈↓ π↑␈εα(␈↓ πj␈ελx␈↓ π⎇␈εα),␈αw␈α␈e␈αsee␈αthat
␈β ≠␈↓ ∧:␈ε↓∩␈↓
≠␈ε↓∪
␈β ≡␈↓ αL␈εα1␈↓ ∧$␈εα1␈↓ ¬λ␈εα1␈↓ λ*␈εα1
␈β /␈↓ β¬␈εk␈↓ ¬p␈εk␈↓ ¬␈␈ε→␈␈ε¬␈α␈1␈↓ ∩␈εk␈↓ !␈ε→␈␈ε¬1
␈β 5␈↓ αg␈εα↓␈↓ β~␈ελW␈↓ β>␈εα(␈↓ βJ␈ελx␈↓ β\␈εα)␈α
=␈↓ ¬R␈εα↓␈↓ ε*␈ελW␈↓ εN␈εα(␈↓ εZ␈ελx␈↓ εu␈εα+␈αλ1)␈ε⊗␈αλ␈␈↓ λt␈εα↓␈↓ L␈ελW␈↓ p␈εα(␈↓ |␈ελx␈↓
∂␈εα)
␈β E␈↓ αG␈∧ EαGα≤␈↓ ∧$␈∧ E∧$α∩␈↓ ∧T␈∧ E∧Tαz␈↓ πw␈∧ Eπwαz
␈β M␈↓ αG␈ελk␈↓ αY␈εα!␈↓ ∧$␈ελk␈↓ ∧T␈εα(␈↓ ∧`␈ελk␈↓ ∧z␈ε⊗␈␈εα␈αλ1)!␈↓ πw␈εα(␈↓ λβ␈ελk␈↓ λ≤␈ε⊗␈␈εα␈αλ1)!
␈β
↔␈↓ β
␈εk
␈β
≤␈↓ ↓H␈εαand␈α∂(1/␈↓ αA␈ελk␈↓ αS␈εα!)␈↓ αo␈εα↓␈↓ β!␈ελW␈↓ βE␈εα(0)␈α⊂=␈↓ ∧2␈ελ∩␈↓ ∧M␈εα.␈α⊗So␈α∂the␈α⊂coe}cien␈α␈ts␈↓ π≤␈ελ∩␈↓ πE␈εαcan␈α∂be␈α∂evaluated␈α⊂using␈α∂a␈α∂v␈α␈ery
␈β
)␈↓ ∧>␈εk␈↓ π(␈εj
␈β
G␈↓ ↓H␈εαsimple␈αmethod,␈αillustrated␈αhere␈αfor␈αthe␈αpolynomial␈↓ πn␈ελW␈↓ λ∩␈εα(␈↓ λ≡␈ελx␈↓ λ0␈εα)␈αin␈α(12):
␈β⊂␈↓ ↓}␈εα10
␈β)␈↓ β⊃␈εα294
␈βB␈↓ ↓l␈εα304␈↓ ∧$␈εα1382/2␈α
=␈α
691
␈β[␈↓ α␈␈εα1676␈↓ εJ␈εα1023/3␈α
=␈α
341
␈βt␈↓ ↓Z␈εα1980␈↓ ∧∩␈εα3428/2␈α
=␈α
1714␈↓ λo␈εα144/4␈α
=␈α
36␈↓
p␈εα(15)
␈β∞␈↓ α␈␈εα5104␈↓ εJ␈εα1455/3␈α
=␈α
485
␈β'␈↓ ↓Z␈εα7084␈↓ ∧∩␈εα6338/2␈α
=␈α
3169
␈β@␈↓ αm␈εα11442
␈βY␈↓ ↓H␈εα18526
␈β
'␈↓ ↓H␈εαThe␈α leftmost␈α column␈α
of␈α this␈α tableau␈α is␈α
a␈α listing␈α of␈α
the␈α giv␈α␈en␈α values␈α of␈↓ s␈ελW␈↓
↔␈εα(0),␈↓
T␈ελW␈↓
x␈εα(1),
␈β
R␈↓ ↓H␈εα.␈αε.␈αε.␈↓ ↓x␈εα,␈↓ α⊃␈ελW␈↓ α4␈εα(4);␈α⊂the␈↓ β8␈ελk␈↓ βJ␈εαth␈α∞succeeding␈α∂column␈α∞is␈α∞obtained␈α∂by␈α∞computing␈α∞the␈α∞di{erence
␈β
⎇␈↓ ↓H␈εαbet␈α␈w␈α␈een␈α∩successiv␈α␈e␈α∩values␈α∪of␈α∩the␈α∩preceding␈α∩column␈α∪and␈α∩dividing␈α∩by␈↓
4␈ελk␈↓
F␈εα.␈α≡The
␈β∞)␈↓ ↓H␈εαcoe}cien␈α␈ts␈↓ α⎇␈ελ∩␈↓ β#␈εαappear␈α
at␈α
the␈αtop␈α
of␈α
the␈αcolumns,␈α
so␈α
that␈↓ λA␈ελ∩␈↓ λg␈εα=␈α10,␈↓ Q␈ελ∩␈↓ v␈εα=␈α294,␈↓
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β∞6␈↓ β ␈εj␈↓ λM␈ε¬0␈↓ ]␈ε¬1
␈β∞T␈↓ ↓H␈ελ∩␈↓ ↓l␈εα=␈α
36,␈αand␈αw␈α␈e␈αhav␈α␈e
␈β∞a␈↓ ↓T␈ε¬4
␈β∂≠␈↓ β\␈ε¬4␈↓ ∧g␈ε¬3␈↓ ¬r␈ε¬2␈↓ ε⎇␈ε¬1
␈β∂!␈↓ α≡␈ελW␈↓ αB␈εα(␈↓ αN␈ελx␈↓ αa␈εα)␈↓ αw␈εα=␈α
36␈↓ βI␈ελx␈↓ βr␈εα+␈αλ341␈↓ ∧T␈ελx␈↓ ∧⎇␈εα+␈αλ691␈↓ ¬←␈ελx␈↓ ελ␈εα+␈αλ294␈↓ εj␈ελx␈↓ π∀␈εα+␈αλ10
␈β∂,␈↓ β%␈ε↓␈␈↓ ↔␈ε↓↓
␈β∂0␈↓ β\␈∧∂0β\α∂␈↓ ∧g␈∧∂0∧gα∂␈↓ ¬r␈∧∂0¬rα∂␈↓ ε⎇␈∧∂0ε⎇α∂
␈β∂L␈↓ αw␈εα=␈↓ β3␈εα((36(␈↓ β{␈ελx␈↓ ∧⊗␈ε⊗␈␈εα␈αλ3)␈αλ+␈αλ341)(␈↓ ¬b␈ελx␈↓ ¬|␈ε⊗␈␈εα␈αλ2)␈αλ+␈αλ691)(␈↓ πH␈ελx␈↓ πc␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ294␈↓ %␈ελx␈↓ @␈εα+␈αλ10.␈↓
p␈εα(16)
␈β⊂~␈↓ ↓H␈εαIn␈αgeneral,␈αw␈α␈e␈αcan␈αwrite
␈β⊂H␈↓ αr␈ε↓␈
␈β⊂h␈↓ ↓l␈ελW␈↓ α⊂␈εα(␈↓ α≤␈ελx␈↓ α.␈εα)␈α
=␈↓ βε␈εα.␈αε.␈αε.␈↓ β6␈εα((␈↓ βN␈ελ∩␈↓ ∧∨␈εα(␈↓ ∧+␈ελx␈↓ ∧@␈ε⊗␈␈↓ ∧f␈ελm␈↓ ¬λ␈εα+␈αα2)␈αλ+␈↓ ε␈ελ∩␈↓ εQ␈εα)(␈↓ εi␈ελx␈↓ ε}␈ε⊗␈␈↓ π$␈ελm␈↓ πF␈εα+␈αα3)␈αλ+␈↓ λ>␈ελ∩␈↓ ∂␈εα)(␈↓ '␈ελx␈↓ ;␈ε⊗␈␈↓ a␈ελm␈↓
β␈εα+␈αα4)
␈β⊂u␈↓ βZ␈εm␈↓ βt␈ε→␈␈ε¬1␈↓ ε␈εm␈↓ ε&␈ε→␈␈ε¬2␈↓ λJ␈εm␈↓ λc␈ε→␈␈ε¬3
␈β⊂w␈↓
∂␈ε↓↓
␈β⊃↔␈↓ λk␈εα+␈↓ ↔␈ε⊗↓␈αε↓␈αε↓␈↓ I␈εα+␈↓ u␈ελ∩␈↓
≥␈ελx␈↓
8␈εα+␈↓
d␈ελ∩␈↓
}␈εα,
␈β⊃$␈↓
↓␈ε¬1␈↓
p␈ε¬0
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα279
␈βα(␈↓ ↓H␈εαand␈αthis␈αform␈α␈ula␈αsho␈α␈ws␈αho␈α␈w␈αthe␈αcoe}cien␈α␈ts␈↓ ε{␈ελW␈↓ π↑␈εα,␈↓ πt␈εα.␈αε.␈αε.␈↓ λ$␈εα,␈↓ λ9␈ελW␈↓ λf␈εα,␈↓ λ{␈ελW␈↓ 3␈εαcan␈αbe␈αobtained
␈βα5␈↓ π→␈εm␈↓ π3␈ε→␈␈ε¬␈α␈1␈↓ λW␈ε¬1␈↓ →␈ε¬0
␈βαS␈↓ ↓H␈εαfrom␈αthe␈↓ α\␈ελ∩␈↓ αk␈εα's:
␈ββ→␈↓ β␈∧β→βαl
␈ββ≠␈↓ βu␈∧β≠βuλα
␈ββ"␈↓ βu␈∧β"βu,α
␈ββ*␈↓ β-␈εα36␈↓ ∧s␈εα341
␈ββN␈↓ βu␈∧βNβu,α
␈ββV␈↓ ∧5␈ε⊗␈␈εα3␈ε⊗␈αλ↓␈εα␈αλ36
␈ββy␈↓ βu␈∧βyβuλα
␈β∧␈↓ β␈∧∧βααE
␈β∧↓␈↓ ¬M␈∧∧↓¬Mλα
␈β∧ ␈↓ ¬M␈∧∧ ¬M,α
␈β∧⊃␈↓ β-␈εα36␈↓ ∧s␈εα233␈↓ εK␈εα691
␈β∧4␈↓ ¬M␈∧∧4¬M,α
␈β∧<␈↓ ∧5␈ε⊗␈␈εα2␈ε⊗␈αλ↓␈εα␈αλ36␈↓ ¬{␈ε⊗␈␈εα2␈ε⊗␈αλ↓␈εα␈αλ233
␈β∧?␈↓
p␈εα(17)
␈β∧←␈↓ ¬M␈∧∧←¬Mλα
␈β∧f␈↓ β␈∧∧fβα∧≥
␈β∧h␈↓ π%␈∧∧hπ%λα
␈β∧o␈↓ π%␈∧∧oπ%,α
␈β∧w␈↓ β-␈εα36␈↓ ∧s␈εα161␈↓ εK␈εα225␈↓ λ#␈εα294
␈β¬~␈↓ π%␈∧¬~π%,α
␈β¬"␈↓ ∧5␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ36␈↓ ¬{␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ161␈↓ πS␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ225
␈β¬E␈↓ π%␈∧¬Eπ%λα
␈β¬L␈↓ β␈∧¬Lβα¬u
␈β¬N␈↓ λ⎇␈∧¬Nλ⎇λα
␈β¬U␈↓ λ⎇␈∧¬Uλ⎇,α
␈β¬]␈↓ β-␈εα36␈↓ ∧s␈εα125␈↓ ε]␈εα64␈↓ λ5␈εα69␈↓ !␈εα10
␈βε␈↓ λ⎇␈∧ελ⎇λα
␈βε2␈↓ ↓H␈εαHere␈αthe␈αn␈α␈um␈α␈bers␈αbelo␈α␈w␈αthe␈αhorizon␈α␈tal␈αlines␈αsuccessiv␈α␈ely␈αsho␈α␈w␈αthe␈αcoe}cien␈α␈ts␈αof
␈βε↑␈↓ ↓H␈εαthe␈αpolynomials
␈βπ2␈↓ ↓l␈ελ∩␈↓ α=␈εα,␈↓ β∃␈ελ∩␈↓ βf␈εα(␈↓ βr␈ελx␈↓ ∧
␈εα+␈↓ ∧9␈ελm␈↓ ∧`␈εα+␈αλ2)␈αλ+␈↓ ¬↑␈ελ∩␈↓ ε/␈εα,
␈βπ?␈↓ ↓x␈εm␈↓ α∩␈ε→␈␈ε¬␈α␈1␈↓ β!␈εm␈↓ β;␈ε→␈␈ε¬␈α␈1␈↓ ¬j␈εm␈↓ ε∧␈ε→␈␈ε¬2
␈βπH␈↓ βx␈ε↓␈␈↓ π!␈ε↓↓
␈βπh␈↓ ∧ε␈ελ∩␈↓ ∧W␈εα(␈↓ ∧c␈ελx␈↓ ∧}␈ε⊗␈␈↓ ¬*␈ελm␈↓ ¬R␈εα+␈αλ2)␈αλ+␈↓ εP␈ελ∩␈↓ π/␈εα(␈↓ π;␈ελx␈↓ πV␈ε⊗␈␈↓ λα␈ελm␈↓ λ)␈εα+␈αλ3)␈αλ+␈↓ '␈ελ∩␈↓ x␈εα,␈↓
P␈εαetc.
␈βπu␈↓ ∧∩␈εm␈↓ ∧,␈ε→␈␈ε¬1␈↓ ε\␈εm␈↓ εv␈ε→␈␈ε¬␈α␈2␈↓ 3␈εm␈↓ M␈ε→␈␈ε¬3
␈βλ;␈↓ α␈εαFrom␈αthis␈αtableau␈αw␈α␈e␈αhav␈α␈e
␈β ␈↓ ¬)␈ε¬4␈↓ ε4␈ε¬3␈↓ π-␈ε¬2
␈β ∂␈↓ βl␈ελW␈↓ ∧∂␈εα(␈↓ ∧≠␈ελx␈↓ ∧.␈εα)␈α
=␈α
36␈↓ ¬⊗␈ελx␈↓ ¬?␈εα+␈αλ125␈↓ ε!␈ελx␈↓ εK␈εα+␈αλ64␈↓ π≠␈ελx␈↓ πD␈εα+␈αλ69␈↓ λ∀␈ελx␈↓ λ/␈εα+␈αλ10,
␈β c␈↓ ↓H␈εαso␈α∞the␈α∞answ␈α␈er␈α∞to␈α∞our␈α∞original␈α∞problem␈α∂is␈α∞1234␈ε⊗␈α ↓␈εα␈α
2341␈α
=␈↓ λD␈ελW␈↓ λh␈εα(16),␈α∞where␈↓
&␈ελW␈↓
J␈εα(16)␈α∞is
␈β
∞␈↓ ↓H␈εαobtained␈αby␈α
adding␈α
and␈α
shifting.␈α∞A␈α
generalization␈α
of␈α
this␈α
method␈α
for␈αobtaining
␈β
9␈↓ ↓H␈εαcoe}cien␈α␈ts␈αis␈αdiscussed␈αin␈αSection␈α4.6.4.
␈β
e␈↓ α␈εαThe␈αbasic␈αStirling␈αn␈α␈um␈α␈ber␈αiden␈α␈tity,
␈β2␈↓ ∧u␈ε↓~␈↓ ¬!␈ε↓≠␈↓ εs␈ε↓~␈↓ π∨␈ε↓≠␈↓ λ⊂␈ε↓~␈↓ λ<␈ε↓≠
␈β5␈↓ ¬␈ελn␈↓ π ␈ελn␈↓ λ&␈ελn
␈βF␈↓ ∧+␈εn␈↓ ¬O␈εn␈↓ πN␈ε¬1
␈βL␈↓ ∧_␈ελx␈↓ ∧G␈εα=␈↓ ¬=␈ελx␈↓ ¬i␈εα+␈↓ ε∃␈ε⊗↓␈αε↓␈αε↓␈↓ εG␈εα+␈↓ π;␈ελx␈↓ πd␈εα+␈↓ λR␈εα,
␈β[␈↓ ¬O␈∧[¬Oα∩␈↓ πN␈∧[πNα∂
␈βd␈↓ ¬␈ελn␈↓ π␈εα1␈↓ λ(␈εα0
␈β6␈↓ ↓H␈εαEq.␈α
1.2.6↑41,␈α∞sho␈α␈ws␈α∞that␈α∞if␈α∞the␈α
coe}cien␈α␈ts␈α∞of␈↓ π ␈ελW␈↓ πD␈εα(␈↓ πP␈ελx␈↓ πb␈εα)␈α∞are␈α∞nonnegativ␈α␈e,␈α∞so␈α∞are␈α
the
␈βa␈↓ ↓H␈εαn␈α␈um␈α␈bers␈↓ αX␈ελ∩␈↓ αq␈εα,␈αand␈αin␈α
such␈αa␈αcase␈ε∂␈αall␈αof␈αthe␈α
in␈α␈termediate␈αresults␈αin␈αthe␈αabo␈α␈v␈α␈e␈αcom-
␈βn␈↓ αd␈εj
␈β
␈↓ ↓H␈ε∂putation␈α
are␈αnonnegativ␈α␈e.␈εα␈αThis␈αfurther␈α
simpli|es␈α
the␈αToom↑Cook␈α
m␈α␈ultiplication
␈β
7␈↓ ↓H␈εαalgorithm,␈αwhich␈αw␈α␈e␈αwill␈αno␈α␈w␈αconsider␈αin␈αdetail.
␈β
w␈↓ ↓H␈ε∩Algorithm␈α C␈εα␈α (␈ε∂High-precision␈α m␈α␈ultiplication␈α of␈α binary␈α n␈α␈um␈α␈bers␈↓
␈εα)␈ε∩.␈εα␈α∩Giv␈α␈en␈α a␈α positiv␈α␈e
␈β∞"␈↓ ↓H␈εαin␈α␈teger␈↓ α>␈ελn␈↓ α↑␈εαand␈αt␈α␈w␈α␈o␈αnonnegativ␈α␈e␈↓ ¬.␈ελn␈↓ ¬D␈εα-bit␈α
in␈α␈tegers␈↓ π
␈ελu␈↓ π+␈εαand␈↓ πp␈ελv␈↓ λβ␈εα,␈αthis␈αalgorithm␈αforms␈α
their
␈β∞M␈↓ ↓H␈εα2␈↓ ↓Z␈ελn␈↓ ↓o␈εα-bit␈αproduct,␈↓ βB␈ελw␈↓ β\␈εα.␈αFour␈αauxiliary␈αstacks␈αare␈αused␈αto␈αhold␈αthe␈αlong␈αn␈α␈um␈α␈bers␈αthat
␈β∞x␈↓ ↓H␈εαare␈αmanipulated␈αduring␈αthis␈αalgorithm:
␈β∂G␈↓ α6␈εαStacks␈↓ β(␈ελU␈↓ βF␈εα,␈↓ β\␈ελV␈↓ βv␈εα:␈↓ ∧H␈εαTemporary␈αstorage␈αof␈↓ π*␈ελU␈↓ πG␈εα(␈↓ πS␈ελj␈↓ πd␈εα)␈αand␈↓ λB␈ελV␈↓ λ\␈εα(␈↓ λh␈ελj␈↓ λx␈εα)␈αin␈αstep␈αC4.
␈β∂r␈↓ α6␈εαStack␈↓ β~␈ελC␈↓ β7␈εα:␈↓ ∧H␈εαNum␈α␈bers␈αto␈αbe␈αm␈α␈ultiplied,␈αand␈αcon␈α␈trol␈αcodes.
␈β⊂≥␈↓ α6␈εαStack␈↓ β~␈ελW␈↓ β>␈εα:␈↓ ∧H␈εαStorage␈αof␈↓ ¬t␈ελW␈↓ ε_␈εα(␈↓ ε$␈ελj␈↓ ε4␈εα).
␈β⊂q␈↓ ↓H␈εαThese␈α stacks␈αλmay␈α con␈α␈tain␈α either␈α binary␈α n␈α␈um␈α␈bers␈α or␈α special␈α con␈α␈trol␈α sym␈α␈bols␈αλcalled
␈β⊃≤␈↓ ↓H␈εαcode-1,␈α∞code-2,␈α∞code-3,␈α∞and␈α∞code-4.␈α∩The␈α
algorithm␈α∞also␈α∞constructs␈α∞an␈α
auxiliary
␈β∪(
␈β↓Y␈↓ ↓H␈εα280␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ ↓H␈εαtable␈α
of␈αn␈α␈um␈α␈bers␈↓ βX␈ελq␈↓ βs␈εα,␈↓ ∧λ␈ελr␈↓ ∧$␈εα;␈αthis␈αtable␈αis␈α
main␈α␈tained␈αin␈αsuch␈αa␈α
manner␈αthat␈αit␈αmay␈α
be
␈βα5␈↓ βe␈εk␈↓ ∧∃␈εk
␈βαS␈↓ ↓H␈εαstored␈α
as␈αa␈α
linear␈αlist,␈αwhere␈α
a␈αsingle␈α
poin␈α␈ter␈αthat␈α
trav␈α␈erses␈αthe␈α
list␈α(mo␈α␈ving␈α
back
␈βα}␈↓ ↓H␈εαand␈αforth)␈αmay␈αbe␈αused␈αto␈αaccess␈αthe␈αcurren␈α␈t␈αtable␈αen␈α␈try␈αof␈αin␈α␈terest.
␈ββ*␈↓ α␈εα(Stacks␈↓ β¬␈ελC␈↓ β(␈εαand␈↓ βi␈ελW␈↓ ∧∪␈εαin␈απthis␈απalgorithm␈αεare␈απused␈αεto␈απcon␈α␈trol␈αεthe␈απrecursiv␈α␈e␈αεmechanism
␈ββU␈↓ ↓H␈εαof␈α
the␈αm␈α␈ultiplication␈α
algorithm␈αin␈αa␈α
reasonably␈αstraigh␈α␈tforward␈αmanner␈α
that␈αis␈α
a
␈β∧␈↓ ↓H␈εαspecial␈αcase␈αof␈αgeneral␈αprocedures␈αdiscussed␈αin␈αChapter␈α8.)
␈β∧1␈↓ ↓H␈ε∩C1.␈↓ α␈εα[Compute␈↓ β4␈ελq␈↓ βD␈εα,␈↓ βT␈ελr␈↓ βp␈εαtables.]␈α→Set␈αstacks␈↓ ε#␈ελU␈↓ εA␈εα,␈↓ εW␈ελV␈↓ εq␈εα,␈↓ ππ␈ελC␈↓ π$␈εα,␈αand␈↓ λ␈ελW␈↓ λ0␈εαempty.␈αSet
␈β∧o␈↓ αT␈ελk␈↓ αp␈ε⊗ ␈εα␈α
1,␈↓ ∧λ␈ελq␈↓ ∧-␈ε⊗ ␈↓ ∧[␈ελq␈↓ ¬↓␈ε⊗ ␈εα␈α
16,␈↓ ε+␈ελr␈↓ εP␈ε⊗ ␈↓ ε}␈ελr␈↓ π#␈ε⊗ ␈εα␈α
4,␈↓ λ;␈ελQ␈↓ λ←␈ε⊗ ␈εα␈α
4,␈ελ␈↓ wR␈ε⊗␈α
␈εα␈α
2.
␈β∧|␈↓ ∧∃␈ε¬0␈↓ ∧h␈ε¬1␈↓ ε8␈ε¬0␈↓ π␈ε¬1
␈β¬-␈↓ α␈εαNo␈α␈w␈αif␈↓ β↓␈ελq␈↓ βP␈εα+␈↓ β|␈ελq␈↓ ∧!␈εα<␈↓ ∧O␈ελn␈↓ ∧e␈εα,␈αset
␈β¬:␈↓ β∞␈εk␈↓ β≥␈ε→␈␈ε¬␈α␈1␈↓ ∧ ␈εk
␈β¬L␈↓ π⊃␈ε↓p
␈β¬g␈↓ π5␈∧¬gπ5α≠
␈β¬i␈↓ ␈εQ␈↓
s␈εR
␈β¬o␈↓ α'␈ελk␈↓ αC␈ε⊗ ␈↓ αq␈ελk␈↓ β
␈εα+␈αλ1,␈↓ ∧ ␈ελQ␈↓ ∧D␈ε⊗ ␈↓ ∧r␈ελQ␈↓ ¬∃␈εα+␈ελ␈αλR␈εα,␈ελ␈↓ ε2R␈ε⊗␈α
␈α
b␈↓ π5␈ελQ␈↓ πU␈ε⊗c␈εα,␈↓ λ;␈ελq␈↓ λ`␈ε⊗ ␈↓ ∞␈εα2␈↓ 6␈εα,␈↓
∞␈ελr␈↓
3␈ε⊗ ␈↓
a␈εα2␈↓ λ␈εα,
␈β¬⎇␈↓ λH␈εk␈↓
~␈εk
␈βε∞␈↓ λ↔␈ε↓␈
␈βε-␈↓ α␈εαand␈α∞repeat␈α∞this␈α∞operation␈α
un␈α␈til␈↓ ε∧␈ελq␈↓ εT␈εα+␈↓ π↓␈ελq␈↓ π*␈ε⊗∃␈↓ π[␈ελn␈↓ πq␈εα.␈↓ λ%␈ε∂Note:␈εα␈α⊂The␈α∞calculation␈α
of
␈βε;␈↓ ε⊃␈εk␈↓ ε ␈ε→␈␈ε¬1␈↓ π∞␈εk
␈βεV␈↓ β∂␈∧εVβ∂α≠
␈βεW␈↓ αk␈ε⊗p
␈βεY␈↓ α␈ελR␈ε⊗␈α
␈α
b␈↓ β∂␈ελQ␈↓ β/␈ε⊗c␈εα␈αdoes␈αnot␈αrequire␈αa␈αsquare␈αroot␈αto␈αbe␈αtak␈α␈en,␈αsince␈αw␈α␈e␈αmay␈αsimply
␈βε␈␈↓ ¬⊃␈ε¬2␈↓
␈ε¬2
␈βπ∧␈↓ α␈εαset␈ελ␈αR␈ε⊗␈α
␈ελ␈α
R␈εα␈απ+␈απ1␈αif␈α(␈ελR␈εα␈αε+␈απ1␈↓ ¬¬␈εα)␈↓ ¬*␈ε⊗∀␈↓ ¬X␈ελQ␈↓ ¬⎇␈εαand␈αleav␈α␈e␈ελ␈αR␈εα␈αunchanged␈αif␈α(␈ελR␈εα␈απ+␈απ1␈↓ ⎇␈εα)␈↓
!␈εα>␈↓
O␈ελQ␈↓
i␈εα;␈αsee
␈βπ/␈↓ α␈εαex␈α␈ercise␈α2.␈αIn␈αthis␈αstep␈αw␈α␈e␈αbuild␈αthe␈αsequences
␈βπe␈↓ β~␈ελk␈↓ β@␈εα=␈↓ β␈␈εα0␈↓ ∧h␈εα1␈↓ ¬P␈εα2␈↓ ε8␈εα3␈↓ π(␈εα4␈↓ λ∨␈εα5␈↓ ⊗␈εα6␈↓ }␈εα.␈αε.␈αε.
␈βλ⊗␈↓ ∧
␈ε¬4␈↓ ∧r␈ε¬4␈↓ ¬[␈ε¬6␈↓ εC␈ε¬8␈↓ π,␈ε¬10␈↓ λ"␈ε¬1␈α↓3␈↓ →␈ε¬1␈α↓6
␈βλ≠␈↓ β⊂␈ελq␈↓ β@␈εα=␈↓ βx␈εα2␈↓ ∧`␈εα2␈↓ ¬I␈εα2␈↓ ε1␈εα2␈↓ π~␈εα2␈↓ λ⊂␈εα2␈↓ π␈εα2␈↓ }␈εα.␈αε.␈αε.
␈βλ)␈↓ β≥␈εk
␈βλL␈↓ ∧
␈ε¬2␈↓ ∧r␈ε¬2␈↓ ¬[␈ε¬2␈↓ εC␈ε¬2␈↓ π3␈ε¬3␈↓ λ*␈ε¬3␈↓ ␈ε¬4
␈βλQ␈↓ β⊃␈ελr␈↓ β@␈εα=␈↓ βx␈εα2␈↓ ∧`␈εα2␈↓ ¬I␈εα2␈↓ ε1␈εα2␈↓ π!␈εα2␈↓ λ_␈εα2␈↓ ∞␈εα2␈↓ }␈εα.␈αε.␈αε.
␈βλ←␈↓ β≥␈εk
␈β ∂␈↓ α␈εαThe␈αm␈α␈ultiplication␈αof␈α70000-bit␈αn␈α␈um␈α␈bers␈αw␈α␈ould␈αcause␈αthis␈αstep␈αto␈αterminate
␈β ≠␈↓ εU␈ε↓↓
␈β 6␈↓ ¬L␈ε¬13␈↓ ε/␈ε¬16
␈β ;␈↓ α␈εαwith␈↓ α↑␈ελk␈↓ αz␈εα=␈α
6,␈αsince␈α70000␈α
<␈↓ ¬:␈εα2␈↓ ¬q␈εα+␈↓ ε≥␈εα2␈↓ εK␈εα.
␈β k␈↓ ↓H␈ε∩C2.␈↓ α␈εα[Put␈↓ α[␈ελu␈↓ αq␈εα,␈↓ β↓␈ελv␈↓ β ␈εαon␈α
stack.]␈α≠Put␈α
code-1␈α
on␈α
stack␈↓ π≠␈ελC␈↓ π9␈εα,␈α
then␈α
place␈↓ λ␈␈ελu␈↓ "␈εαand␈↓ i␈ελv␈↓
␈εαon␈α␈to␈αstack
␈β
⊗␈↓ α␈ελC␈↓ α5␈εαas␈αn␈α␈um␈α␈bers␈αof␈αexactly␈↓ ¬→␈ελq␈↓ ¬h␈εα+␈↓ ε∀␈ελq␈↓ ε<␈εαbits␈αeach.
␈β
$␈↓ ¬&␈εk␈↓ ¬5␈ε→␈␈ε¬1␈↓ ε!␈εk
␈β
G␈↓ ↓H␈ε∩C3.␈↓ α␈εα[Check␈α⊂recursion␈α⊂lev␈α␈el.]␈α!Decrease␈↓ ε>␈ελk␈↓ ε`␈εαby␈α⊂1.␈α_If␈↓ πt␈ελk␈↓ λ↔␈εα=␈α⊃0,␈α⊃the␈α⊂top␈α⊂of␈α⊂stack␈↓ ∂␈ελC
␈β
r␈↓ α␈εαcon␈α␈tains␈α
t␈α␈w␈α␈o␈α
32-bit␈α
n␈α␈um␈α␈bers,␈↓ ¬d␈ελu␈↓ εε␈εαand␈↓ εN␈ελv␈↓ ε`␈εα;␈α∞set␈↓ π1␈ελw␈↓ πX␈ε⊗ ␈↓ λλ␈ελu␈↓ λ≥␈ελv␈↓ λ=␈εαusing␈α
a␈α
built-in␈α
routine
␈β≥␈↓ α␈εαfor␈α∞m␈α␈ultiplying␈α∞32-bit␈α∞n␈α␈um␈α␈bers,␈α∞and␈α∞go␈α
to␈α∞step␈α∞C10.␈α∩If␈↓ ¬␈ελk␈↓ $␈εα>␈α
0,␈α∞set␈↓
9␈ελr␈↓
V␈ε⊗ ␈↓ π␈ελr␈↓ "␈εα,
␈β+␈↓ ∀␈εk
␈βI␈↓ α␈ελq␈↓ α&␈ε⊗ ␈↓ αT␈ελq␈↓ αp␈εα,␈↓ βε␈ελp␈↓ β"␈ε⊗ ␈↓ βP␈ελq␈↓ ∧∨␈εα+␈↓ ∧K␈ελq␈↓ ∧f␈εα,␈αand␈αgo␈αon␈αto␈αstep␈αC4.
␈βV␈↓ αa␈εk␈↓ β]␈εk␈↓ βl␈ε→␈␈ε¬␈α␈1␈↓ ∧X␈εk
␈βy␈↓ ↓H␈ε∩C4.␈↓ α␈εα[Break␈αin␈α␈to␈↓ βE␈ελr␈↓ β\␈εα+␈απ1␈αparts.]␈α↔Let␈αthe␈αn␈α␈um␈α␈ber␈αat␈αthe␈αtop␈αof␈αstack␈↓ M␈ελC␈↓ u␈εαbe␈αregarded
␈β$␈↓ α␈εαas␈αa␈αlist␈αof␈↓ β8␈ελr␈↓ βN␈εα+␈απ1␈αn␈α␈um␈α␈bers␈αwith␈↓ ¬v␈ελq␈↓ ε⊃␈εαbits␈αeach,␈α(␈↓ π=␈ελU␈↓ πg␈εα.␈αε.␈αε.␈↓ λ↔␈ελU␈↓ λ=␈ελU␈↓ λb␈εα)␈↓ λ␈εα.␈α(The␈αtop␈α
of␈αstack
␈β0␈↓ λ|␈ε
q
␈β2␈↓ πT␈εr␈↓ λ.␈ε¬1␈↓ λT␈ε¬0␈↓ λn␈ε¬2
␈βP␈↓ α␈ελC␈↓ α6␈εαno␈α␈w␈α
con␈α␈tains␈α∞an␈α
(␈↓ ∧P␈ελr␈↓ ∧h␈εα+␈α 1)␈↓ ¬3␈ελq␈↓ ¬O␈εα=␈α(␈↓ ε␈ελq␈↓ ε/␈εα+␈↓ ε\␈ελq␈↓ π"␈εα)-bit␈α
n␈α␈um␈α␈ber.)␈α⊂For␈↓ T␈ελj␈↓ p␈εα=␈α0,␈α
1,␈↓
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β]␈↓ ε_␈εk␈↓ εi␈εk␈↓ εw␈ε¬+1
␈β{␈↓ α␈εα2␈↓ α≡␈ελr␈↓ α.␈εα,␈αcompute␈αthe␈↓ ∧∀␈ελp␈↓ ∧&␈εα-bit␈αn␈α␈um␈α␈bers
␈β
→␈↓ βs␈ε↓␈␈↓ πO␈ε↓↓
␈β
9␈↓ ∧π␈εα.␈αε.␈αε.␈↓ ∧7␈εα(␈↓ ∧C␈ελU␈↓ ∧h␈ελj␈↓ ¬␈εα+␈↓ ¬,␈ελU␈↓ ¬|␈εα)␈↓ ελ␈ελj␈↓ ε ␈εα+␈↓ εL␈ε⊗↓␈αε↓␈αε↓␈↓ ε}␈εα+␈↓ π*␈ελU␈↓ π]␈ελj␈↓ πv␈εα+␈↓ λ"␈ελU␈↓ λQ␈εα=␈↓ λ␈␈ελU␈↓ ≥␈εα(␈↓ )␈ελj␈↓ 9␈εα)
␈β
F␈↓ ∧Z␈εr␈↓ ¬C␈εr␈↓ ¬P␈ε→␈␈ε¬1␈↓ πA␈ε¬1␈↓ λ9␈ε¬0
␈β
w␈↓ α␈εαand␈α
successiv␈α␈ely␈α put␈α
these␈α values␈α
on␈α␈to␈α stack␈↓ πA␈ελU␈↓ π←␈εα.␈α(The␈α bottom␈α
of␈α
stack␈↓
F␈ελU␈↓
m␈εαno␈α␈w
␈β∞"␈↓ α␈εαcon␈α␈tains␈↓ β→␈ελU␈↓ β7␈εα(0),␈αthen␈αcomes␈↓ ¬3␈ελU␈↓ ¬P␈εα(1),␈αetc.,␈αwith␈↓ π0␈ελU␈↓ πN␈εα(2␈↓ πl␈ελr␈↓ π|␈εα)␈αon␈αtop.␈αNote␈αthat
␈β∞A␈↓ ¬¬␈ε↓␈␈↓ λ%␈ε↓↓
␈β∞Z␈↓ ∧x␈εq␈↓ ¬M␈εr␈↓ εH␈εr␈↓ εV␈ε→␈␈ε¬1␈↓ λ⎇␈εq␈↓
␈ε¬+1␈↓ o␈εr␈↓
F␈εp
␈β∞`␈↓ αY␈ελU␈↓ αv␈εα(␈↓ βα␈ελj␈↓ β∪␈εα)␈ε⊗␈α
∀␈↓ βW␈ελU␈↓ βt␈εα(2␈↓ ∧∩␈ελr␈↓ ∧"␈εα)␈α
<␈↓ ∧f␈εα2␈↓ ¬∪␈εα(2␈↓ ¬1␈ελr␈↓ ¬A␈εα)␈↓ ¬c␈εα+␈αλ(2␈↓ ε-␈ελr␈↓ ε<␈εα)␈↓ π ␈εα+␈↓ π5␈ε⊗↓␈αε↓␈αε↓␈↓ πg␈εα+␈αλ1␈↓ λ=␈εα<␈↓ λk␈εα2␈↓ 5␈εα(2␈↓ S␈ελr␈↓ c␈εα)␈↓
ε␈ε⊗∀␈↓
4␈εα2␈↓
V␈εα,
␈β∂≡␈↓ α␈εαby␈αex␈α␈ercise␈α3.)␈αThen␈αremo␈α␈v␈α␈e␈↓ ¬S␈ελU␈↓ ¬⎇␈εα.␈αε.␈αε.␈↓ ε-␈ελU␈↓ εS␈ελU␈↓ π∧␈εαfrom␈αstack␈↓ λ8␈ελC␈↓ λU␈εα.
␈β∂,␈↓ ¬j␈εr␈↓ εD␈ε¬1␈↓ εj␈ε¬0
␈β∂J␈↓ αP␈εαNo␈α␈w␈α∂the␈α∞top␈α∞of␈α∂stack␈↓ ¬5␈ελC␈↓ ¬a␈εαcon␈α␈tains␈α∞another␈α∞list␈α∂of␈↓ λa␈ελr␈↓ λz␈εα+␈α
1␈↓ H␈ελq␈↓ X␈εα-bit␈α∞n␈α␈um␈α␈bers,
␈β∂u␈↓ α␈ελV␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈ελV␈↓ βε␈ελV␈↓ β(␈εα,␈αand␈αthe␈↓ ∧B␈ελp␈↓ ∧U␈εα-bit␈αn␈α␈um␈α␈bers
␈β⊂α␈↓ α ␈εr␈↓ αw␈ε¬1␈↓ β~␈ε¬0
␈β⊂∪␈↓ β{␈ε↓␈␈↓ πN␈ε↓↓
␈β⊂3␈↓ ∧∂␈εα.␈αε.␈αε.␈↓ ∧?␈εα(␈↓ ∧K␈ελV␈↓ ∧m␈ελj␈↓ ¬¬␈εα+␈↓ ¬1␈ελV␈↓ ¬⎇␈εα)␈↓ ε ␈ελj␈↓ ε"␈εα+␈↓ εN␈ε⊗↓␈αε↓␈αε↓␈↓ π␈εα+␈↓ π,␈ελV␈↓ π\␈ελj␈↓ πu␈εα+␈↓ λ!␈ελV␈↓ λM␈εα=␈↓ λ{␈ελV␈↓ ∃␈εα(␈↓ !␈ελj␈↓ 1␈εα)
␈β⊂@␈↓ ∧←␈εr␈↓ ¬E␈εr␈↓ ¬R␈ε→␈␈ε¬1␈↓ π@␈ε¬1␈↓ λ5␈ε¬0
␈β⊂q␈↓ α␈εαshould␈αλbe␈αλput␈αλon␈α␈to␈αλstack␈↓ ¬␈ελV␈↓ ¬-␈εαin␈αλthe␈αλsame␈αλway.␈αAfter␈αλthis␈αλhas␈αλbeen␈αλdone,␈αλremo␈α␈v␈α␈e
␈β⊃≤␈↓ α␈ελV␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈ελV␈↓ βε␈ελV␈↓ β4␈εαfrom␈αstack␈↓ ∧h␈ελC␈↓ ¬¬␈εα.
␈β⊃)␈↓ α ␈εr␈↓ αw␈ε¬1␈↓ β~␈ε¬0
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα281
␈βε<␈↓ αe␈ε∪Fig.␈α8.␈εβ␈α~To␈α␈om↑␈α␈Coo␈α␈k␈αalgo␈α␈rithm␈αfor␈αh␈α␈igh␈α␈-␈α↓p␈α␈recision␈α
m␈α␈ultiplicat␈α␈i␈α↓o␈α␈n.
␈βπ6␈↓ ↓H␈ε∩C5.␈↓ α␈εα[Recurse.]␈α≤Successiv␈α␈ely␈α
put␈α
the␈α∞follo␈α␈wing␈α
items␈α
on␈α␈to␈α∞stack␈↓ =␈ελC␈↓ Z␈εα,␈α∞at␈α
the␈α
same
␈βπa␈↓ α␈εαtime␈αemptying␈αstacks␈↓ ∧j␈ελU␈↓ ¬∀␈εαand␈↓ ¬Z␈ελV␈↓ ¬t␈εα:
␈βλ5␈↓ α0␈εαcode-2,␈↓ β*␈ελV␈↓ βD␈εα(2␈↓ βb␈ελr␈↓ βr␈εα),␈↓ ∧∀␈ελU␈↓ ∧1␈εα(2␈↓ ∧O␈ελr␈↓ ∧←␈εα),␈αcode-3,␈↓ ¬{␈ελV␈↓ ε∃␈εα(2␈↓ ε3␈ελr␈↓ εK␈ε⊗␈␈εα␈αλ1),␈↓ π+␈ελU␈↓ πI␈εα(2␈↓ πg␈ελr␈↓ π}␈ε⊗␈␈εα␈αλ1),␈↓ λ↑␈εα.␈αε.␈αε.␈↓ ∞␈εα,
␈βλ`␈↓ ε1␈εαcode-3,␈↓ π+␈ελV␈↓ πE␈εα(1),␈↓ λ¬␈ελU␈↓ λ#␈εα(1),␈αcode-3,␈↓ ]␈ελV␈↓ w␈εα(0),␈↓
7␈ελU␈↓
T␈εα(0).
␈β 5␈↓ α␈εαPut␈αcode-4␈αon␈α␈to␈αstack␈↓ ∧o␈ελW␈↓ ¬∪␈εα.␈αGo␈αback␈αto␈αstep␈αC3.
␈β K␈↓ ∧M␈ε↓␈
␈β j␈↓ ↓H␈ε∩C6.␈↓ α␈εα[Sav␈α␈e␈αone␈α
product.]␈↓ ∧[␈εαAt␈αthis␈α
poin␈α␈t␈αthe␈α
m␈α␈ultiplication␈αalgorithm␈α
has␈αset␈↓
g␈ελw␈↓ ␈εαto
␈β v␈↓ εe␈ε↓↓
␈β
∃␈↓ α␈εαone␈α
of␈αthe␈α
products␈↓ ∧M␈ελW␈↓ ∧p␈εα(␈↓ ∧|␈ελj␈↓ ¬
␈εα)␈α=␈↓ ¬S␈ελU␈↓ ¬q␈εα(␈↓ ¬⎇␈ελj␈↓ ε
␈εα)␈↓ ε→␈ελV␈↓ ε3␈εα(␈↓ ε?␈ελj␈↓ εO␈εα).␈↓ π␈εαPut␈↓ πD␈ελw␈↓ πl␈εαon␈α␈to␈αstack␈↓ ≤␈ελW␈↓ @␈εα.␈α∞(This␈αn␈α␈um␈α␈ber
␈β
A␈↓ α␈ελw␈↓ α3␈εαcon␈α␈tains␈α2(␈↓ β↑␈ελq␈↓ ∧↓␈εα+␈↓ ∧-␈ελq␈↓ ∧t␈εα)␈αbits.)␈αGo␈αback␈αto␈αstep␈αC3.
␈β
N␈↓ βk␈εk␈↓ ∧:␈εk␈↓ ∧I␈ε→␈␈ε¬1
␈β
v␈↓ ↓H␈ε∩C7.␈↓ α␈εα[Find␈↓ αi␈ελ∩␈↓ αx␈εα's.]␈α∩Set␈↓ βp␈ελr␈↓ ∧
␈ε⊗ ␈↓ ∧8␈ελr␈↓ ∧S␈εα,␈↓ ∧g␈ελq␈↓ ¬↓␈ε⊗ ␈↓ ¬/␈ελq␈↓ ¬K␈εα,␈↓ ¬↑␈ελp␈↓ ¬z␈ε⊗ ␈↓ ε(␈ελq␈↓ εs␈εα+␈↓ π~␈ελq␈↓ π6␈εα.␈α(At␈α this␈αλpoin␈α␈t␈α stack␈↓ ␈␈ελW␈↓
+␈εαcon␈α␈tains
␈β∧␈↓ ∧E␈εk␈↓ ¬<␈εk␈↓ ε5␈εk␈↓ εD␈ε→␈␈ε¬1␈↓ π'␈εk
␈β!␈↓ α␈εα.␈αε.␈αε.␈↓ α<␈εα,␈αcode-4,␈↓ βJ␈ελW␈↓ βn␈εα(0),␈↓ ∧.␈ελW␈↓ ∧R␈εα(1),␈↓ ¬⊃␈εα.␈αε.␈αε.␈↓ ¬A␈εα,␈↓ ¬V␈ελW␈↓ ¬z␈εα(2␈↓ ε_␈ελr␈↓ ε(␈εα)␈αfrom␈αbottom␈αto␈αtop,␈αwhere␈αeach␈↓
=␈ελW␈↓
a␈εα(␈↓
m␈ελj␈↓
⎇␈εα)␈αis
␈βM␈↓ α␈εαa␈α2␈↓ α<␈ελp␈↓ αN␈εα-bit␈αn␈α␈um␈α␈ber.)
␈βx␈↓ αP␈εαNo␈α␈w␈α∞for␈↓ β←␈ελj␈↓ β⎇␈εα=␈α
1,␈α∞2,␈α∞3,␈↓ ¬-␈εα.␈αε.␈αε.␈↓ ¬]␈εα,␈α∞2␈↓ επ␈ελr␈↓ ε↔␈εα,␈α∞perform␈α∞the␈α∞follo␈α␈wing␈α∞loop:␈α⊂For␈↓
5␈ελt␈↓
P␈εα=␈α
2␈↓ ∪␈ελr␈↓ "␈εα,
␈ββ␈↓ εZ␈ε↓␈␈↓ π|␈ε↓↓␈↓ λN␈ε↓␈
␈β#␈↓ α␈εα2␈↓ α≡␈ελr␈↓ α8␈ε⊗␈␈εα␈α1,␈α⊃2␈↓ β&␈ελr␈↓ β@␈ε⊗␈␈εα␈α
2,␈↓ ∧≠␈εα.␈αε.␈αε.␈↓ ∧K␈εα,␈↓ ∧f␈ελj␈↓ ∧v␈εα,␈α⊃set␈↓ ¬M␈ελW␈↓ ¬q␈εα(␈↓ ¬⎇␈ελt␈↓ ε
␈εα)␈ε⊗␈α⊂ ␈↓ εh␈ελW␈↓ π␈εα(␈↓ π_␈ελt␈↓ π0␈ε⊗␈␈εα␈α
1)␈↓ λ
␈εα/␈↓ λ≤␈ελj␈↓ λ,␈εα.␈↓ λ\␈εαHere␈↓ 4␈ελj␈↓ T␈εαm␈α␈ust␈α∂increase
␈β/␈↓ εJ␈ε↓␈␈↓ λk␈ε↓↓
␈βN␈↓ α␈εαand␈↓ αT␈ελt␈↓ αp␈εαm␈α␈ust␈α∞decrease.␈α∪The␈α∂quan␈α␈tity␈↓ εX␈ελW␈↓ ε|␈εα(␈↓ πλ␈ελt␈↓ π∃␈εα)␈ε⊗␈α
␈␈↓ πX␈ελW␈↓ π|␈εα(␈↓ λλ␈ελt␈↓ λ∨␈ε⊗␈␈εα␈α
1)␈↓ λy␈εα/␈↓ ␈ελj␈↓ )␈εαwill␈α∂always␈α∞be␈α∞a
␈βZ␈↓ πx␈ε↓↓
␈βy␈↓ α␈εαnonnegativ␈α␈e␈αin␈α␈teger␈αthat␈α|ts␈αin␈α2␈↓ ε∩␈ελp␈↓ ε0␈εαbits;␈αcf.␈α(15).
␈β
/␈↓ ↓H␈ε∩C8.␈↓ α␈εα[Find␈↓ αo␈ελW␈↓ β∪␈εα's.]␈α∨For␈↓ ∧%␈ελj␈↓ ∧D␈εα=␈α∂2␈↓ ¬ ␈ελr␈↓ ¬#␈ε⊗␈␈εα␈α
1,␈α⊂2␈↓ ε∂␈ελr␈↓ ε)␈ε⊗␈␈εα␈α
2,␈↓ πβ␈εα.␈αε.␈αε.␈↓ π3␈εα,␈α∂1,␈α⊂perform␈α∂the␈α∂follo␈α␈wing␈α∂loop:
␈β
:␈↓ `␈ε↓␈
␈β
Z␈↓ α␈εαFor␈↓ αP␈ελt␈↓ αh␈εα=␈↓ β↔␈ελj␈↓ β'␈εα,␈↓ β>␈ελj␈↓ βV␈εα+␈α 1,␈↓ ∧+␈εα.␈αε.␈αε.␈↓ ∧[␈εα,␈α
2␈↓ ¬∧␈ελr␈↓ ¬≤␈ε⊗␈␈εα␈αλ1,␈α
set␈↓ ε)␈ελW␈↓ εM␈εα(␈↓ εY␈ελt␈↓ εf␈εα)␈ε⊗␈α ␈↓ π,␈ελW␈↓ πO␈εα(␈↓ π[␈ελt␈↓ πh␈εα)␈ε⊗␈α ␈␈↓ λ)␈ελj␈↓ λ9␈ελW␈↓ λ]␈εα(␈↓ λi␈ελt␈↓ λ␈␈εα+␈αλ1).␈↓ n␈εαHere␈↓
C␈ελj␈↓
←␈εαm␈α␈ust
␈β∞¬␈↓ α␈εαdecrease␈α∞and␈↓ βe␈ελt␈↓ ∧␈εαm␈α␈ust␈α∂increase.␈α∪The␈α∞result␈α∂of␈α∞this␈α∂operation␈α∞will␈α∂again␈α∞be␈α∞a
␈β∞⊃␈↓ ε6␈ε↓↓
␈β∞0␈↓ α␈εαnonnegativ␈α␈e␈α2␈↓ βg␈ελp␈↓ βy␈εα-bit␈αin␈α␈teger;␈αcf.␈α(17).
␈β∞f␈↓ ↓H␈ε∩C9.␈↓ α␈εα[Set␈αansw␈α␈er.]␈α→Set␈↓ ∧*␈ελw␈↓ ∧Q␈εαto␈αthe␈α2(␈↓ ¬Y␈ελq␈↓ ¬⎇␈εα+␈↓ ε)␈ελq␈↓ εo␈εα)-bit␈αin␈α␈teger
␈β∞s␈↓ ¬f␈εk␈↓ ε6␈εk␈↓ εD␈ε¬+1
␈β∂≠␈↓ β&␈ε↓␈␈↓ βj␈ε↓␈␈↓ εL␈ε↓↓␈↓ λZ␈ε↓↓
␈β∂4␈↓ ∧g␈εq␈↓ εl␈εq␈↓ λz␈εq
␈β∂:␈↓ β:␈εα.␈αε.␈αε.␈↓ βx␈ελW␈↓ ∧≤␈εα(2␈↓ ∧:␈ελr␈↓ ∧I␈εα)␈↓ ∧U␈εα2␈↓ ∧⎇␈εα+␈↓ ¬)␈ελW␈↓ ¬M␈εα(2␈↓ ¬k␈ελr␈↓ εα␈ε⊗␈␈εα␈αλ1)␈↓ εZ␈εα2␈↓ πα␈εα+␈↓ π.␈ε⊗↓␈αε↓␈αε↓␈↓ π`␈εα+␈↓ λ␈ελW␈↓ λ0␈εα(1)␈↓ λh␈εα2␈↓ ∂␈εα+␈↓ ;␈ελW␈↓ ←␈εα(0).
␈β⊂∞␈↓ α␈εαRemo␈α␈v␈α␈e␈↓ β∃␈ελW␈↓ β9␈εα(2␈↓ βW␈ελr␈↓ βg␈εα),␈↓ ∧ ␈εα.␈αε.␈αε.␈↓ ∧9␈εα,␈↓ ∧O␈ελW␈↓ ∧s␈εα(0)␈αand␈αcode-4␈αfrom␈αstack␈↓ λ∪␈ελW␈↓ λ7␈εα.
␈β⊂D␈↓ ↓6␈ε∩C10.␈↓ α␈εα[Return.]␈α~Set␈↓ βr␈ελk␈↓ ∧∞␈ε⊗ ␈↓ ∧=␈ελk␈↓ ∧W␈εα+␈α 1.␈α
Remo␈α␈v␈α␈e␈α
the␈αtop␈α
of␈αstack␈↓ λ?␈ελC␈↓ λ\␈εα.␈α∞If␈αit␈α
is␈αcode-3,␈α
go␈αto
␈β⊂o␈↓ α␈εαC6.␈α⊃If␈α
it␈α∞is␈α
code-2,␈α∞put␈↓ ¬¬␈ελw␈↓ ¬-␈εαon␈α␈to␈α∞stack␈↓ ε←␈ελW␈↓ π⊃␈εαand␈α
go␈α∞to␈α∞C7.␈α⊂And␈α∞if␈α
it␈α∞is␈α
code-1,
␈β⊃~␈↓ α␈εαterminate␈αthe␈αalgorithm␈α(␈↓ ¬≡␈ελw␈↓ ¬E␈εαis␈αthe␈αansw␈α␈er).
␈β⊃∨␈↓ πO␈∧⊃∨πO≠∂
␈β∪(
␈β↓Y␈↓ ↓H␈εα282␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα&␈↓ α␈εαLet␈α∞us␈α
no␈α␈w␈α∞estimate␈α∞the␈α
running␈α∞time,␈↓ πβ␈ελT␈↓ π≤␈εα(␈↓ π(␈ελn␈↓ π>␈εα),␈α∞for␈α∞Algorithm␈α
C,␈α∞in␈α∞terms␈α
of
␈βαQ␈↓ ↓H␈εαsome␈αthings␈αw␈α␈e␈αshall␈αcall␈α\cy␈α␈cles,"␈αi.e.,␈αelemen␈α␈tary␈αmachine␈αoperations.␈αStep␈αC1
␈βα⎇␈↓ ↓H␈εαtak␈α␈es␈↓ α$␈ελO␈↓ α>␈εα(␈↓ αJ␈ελq␈↓ αf␈εα)␈αcy␈α␈cles,␈αev␈α␈en␈αif␈αw␈α␈e␈αrepresen␈α␈t␈αthe␈αn␈α␈um␈α␈ber␈↓ πq␈ελq␈↓ λ→␈εαin␈α␈ternally␈αas␈αa␈αlong␈αstring
␈ββ
␈↓ αW␈εk␈↓ π}␈εk
␈ββ(␈↓ ↓H␈εαof␈↓ ↓t␈ελq␈↓ α≥␈εαbits␈α∞follo␈α␈w␈α␈ed␈α∞by␈α∞some␈α∞delimiter,␈α∞since␈↓ πβ␈ελq␈↓ π(␈εα+␈↓ πV␈ελq␈↓ λ&␈εα+␈↓ λS␈ε⊗↓␈αε↓␈αε↓␈↓ ε␈εα+␈↓ 3␈ελq␈↓ ]␈εαwill␈α∞be␈↓
U␈ελO␈↓
o␈εα(␈↓
{␈ελq␈↓ ⊗␈εα).
␈ββ5␈↓ α↓␈εk␈↓ π⊂␈εk␈↓ πc␈εk␈↓ πq␈ε→␈␈ε¬1␈↓ @␈ε¬0␈↓ λ␈εk
␈ββS␈↓ ↓H␈εαStep␈αC2␈αobviously␈αtak␈α␈es␈↓ ∧S␈ελO␈↓ ∧m␈εα(␈↓ ∧y␈ελq␈↓ ¬∀␈εα)␈αcy␈α␈cles.
␈ββ`␈↓ ¬ε␈εk
␈ββ}␈↓ α␈εαNo␈α␈w␈α⊃let␈↓ β≥␈ελt␈↓ βG␈εαdenote␈α⊂the␈α⊃amoun␈α␈t␈α⊃of␈α⊃computation␈α⊂required␈α⊃to␈α⊃get␈α⊃from␈α⊂step
␈β∧␈↓ β'␈εk
␈β∧)␈↓ ↓H␈εαC3␈α∂to␈α∂step␈α∞C10␈α∂for␈α∂a␈α∂particular␈α∂value␈α∂of␈↓ εf␈ελk␈↓ ππ␈εα(after␈↓ πl␈ελk␈↓ λ
␈εαhas␈α∂been␈α∂decreased␈α∞at␈α∂the
␈β∧U␈↓ ↓H␈εαbeginning␈αof␈αstep␈αC3).␈αStep␈αC3␈αrequires␈↓ εD␈ελO␈↓ ε↑␈εα(␈↓ εj␈ελq␈↓ εz␈εα)␈αcy␈α␈cles␈αat␈αmost.␈α
Step␈αC4␈αin␈α␈v␈α␈olv␈α␈es␈↓ ≥␈ελr
␈β¬␈↓ ↓H␈εαm␈α␈ultiplications␈αof␈↓ βg␈ελp␈↓ βy␈εα-bit␈αn␈α␈um␈α␈bers␈αby␈α(␈↓ ε
␈εαlg␈↓ ε/␈εα2␈↓ εA␈ελr␈↓ εQ␈εα)-bit␈αn␈α␈um␈α␈bers,␈αand␈↓ ␈ελr␈↓ ≤␈εαadditions␈αof␈↓
b␈ελp␈↓
t␈εα-bit
␈β¬&␈↓ F␈ε¬2
␈β¬+␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈α
all␈αrepeated␈α
4␈↓ ∧:␈ελr␈↓ ∧R␈εα+␈α 2␈α
times.␈α∞Th␈α␈us␈α
w␈α␈e␈αneed␈α
a␈α
total␈α
of␈↓ ⊂␈ελO␈↓ +␈εα(␈↓ 7␈ελr␈↓ U␈ελq␈↓ k␈εαlog␈↓
∨␈ελr␈↓
/␈εα)␈αcy␈α␈cles.
␈β¬V␈↓ ↓H␈εαStep␈αC5␈αrequires␈αmo␈α␈ving␈α4␈↓ ∧k␈ελr␈↓ ¬β␈εα+␈αλ2␈↓ ¬M␈ελp␈↓ ¬←␈εα-bit␈α
n␈α␈um␈α␈bers,␈αso␈αit␈αin␈α␈v␈α␈olv␈α␈es␈↓ ↔␈ελO␈↓ 1␈εα(␈↓ =␈ελr␈↓ M␈ελq␈↓ ]␈εα)␈αcy␈α␈cles.␈αStep
␈βε↓␈↓ ↓H␈εαC6␈αrequires␈↓ βπ␈ελO␈↓ β!␈εα(␈↓ β-␈ελq␈↓ β=␈εα)␈αcy␈α␈cles,␈αand␈αit␈αis␈αdone␈α2␈↓ ε;␈ελr␈↓ εR␈εα+␈αλ1␈αtimes␈αper␈αiteration.␈αThe␈αrecursion
␈βε-␈↓ ↓H␈εαin␈α␈v␈α␈olv␈α␈ed␈αwhen␈αthe␈αalgorithm␈αessen␈α␈tially␈αin␈α␈v␈α␈ok␈α␈es␈α
itself␈α(by␈αreturning␈αto␈αstep␈αC3)
␈βεS␈↓ λB␈ε¬2
␈βεX␈↓ ↓H␈εαrequires␈↓ αO␈ελt␈↓ β ␈εαcy␈α␈cles,␈α∞2␈↓ ∧%␈ελr␈↓ ∧=␈εα+␈α 1␈α
times.␈α⊂Step␈α
C7␈α
requires␈↓ λ␈ελO␈↓ λ&␈εα(␈↓ λ2␈ελr␈↓ λQ␈εα)␈α
subtractions␈α
of␈↓
b␈ελp␈↓
t␈εα-bit
␈βεe␈↓ αZ␈εk␈↓ αh␈ε→␈␈ε¬1
␈βε}␈↓
8␈ε¬2
␈βπβ␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αand␈αdivisions␈αof␈α2␈↓ ∧l␈ελp␈↓ ∧}␈εα-bit␈αby␈α(␈↓ ε↓␈εαlg␈↓ ε#␈εα2␈↓ ε5␈ελr␈↓ εE␈εα)-bit␈αn␈α␈um␈α␈bers,␈αso␈αit␈αrequires␈↓
α␈ελO␈↓
≤␈εα(␈↓
(␈ελr␈↓
G␈ελq␈↓
]␈εαlog␈↓ ⊃␈ελr␈↓ ␈εα)
␈βπ)␈↓ ε:␈ε¬2
␈βπ.␈↓ ↓H␈εαcy␈α␈cles.␈α↔Similarly,␈α⊃step␈α∂C8␈α⊂requires␈↓ ε∧␈ελO␈↓ ε≡␈εα(␈↓ ε*␈ελr␈↓ εH␈ελq␈↓ ε↑␈εαlog␈↓ π∩␈ελr␈↓ π"␈εα)␈α⊂cy␈α␈cles.␈α↔Step␈α⊂C9␈α⊂in␈α␈v␈α␈olv␈α␈es␈↓
Z␈ελO␈↓
u␈εα(␈↓ ↓␈ελr␈↓ ⊂␈ελq␈↓ ␈εα)
␈βπY␈↓ ↓H␈εαcy␈α␈cles,␈αand␈αC10␈αtak␈α␈es␈αhardly␈αan␈α␈y␈αtime␈αat␈αall.
␈βλ¬␈↓ α␈εαSumming␈α∞up,␈α∞w␈α␈e␈α
hav␈α␈e␈↓ ∧{␈ελT␈↓ ¬∀␈εα(␈↓ ¬ ␈ελn␈↓ ¬6␈εα)␈α=␈↓ ¬␈␈ελO␈↓ ε→␈εα(␈↓ ε%␈ελq␈↓ εA␈εα)␈α +␈↓ πβ␈ελO␈↓ π≥␈εα(␈↓ π)␈ελq␈↓ πD␈εα)␈α +␈↓ λε␈ελt␈↓ λK␈εα,␈α∞where␈α
(if␈↓ |␈ελq␈↓
→␈εα=␈↓
I␈ελq␈↓
r␈εαand
␈βλ∩␈↓ ε2␈εk␈↓ π6␈εk␈↓ λ⊃␈εk␈↓ λ ␈ε→␈␈ε¬␈α␈1␈↓
V␈εk
␈βλ0␈↓ ↓H␈ελr␈↓ ↓a␈εα=␈↓ α∂␈ελr␈↓ α+␈εα)␈αthe␈αmain␈αcon␈α␈tribution␈αto␈αthe␈αrunning␈αtime␈αsatis|es
␈βλ=␈↓ α≤␈εk
␈βλu␈↓ βi␈ε¬2␈↓ λD␈ε¬2
␈βλ{␈↓ ↓l␈ελt␈↓ α∂␈εα=␈↓ α=␈ελO␈↓ αW␈εα(␈↓ αc␈ελq␈↓ αt␈εα)␈αλ+␈↓ β4␈ελO␈↓ βN␈εα(␈↓ βZ␈ελr␈↓ βx␈ελq␈↓ ∧∞␈εαlog␈↓ ∧B␈ελr␈↓ ∧R␈εα)␈αλ+␈↓ ¬∩␈ελO␈↓ ¬,␈εα(␈↓ ¬8␈ελr␈↓ ¬H␈ελq␈↓ ¬X␈εα)␈αλ+␈αλ(2␈↓ ε6␈ελr␈↓ εN␈εα+␈αλ1)␈↓ π_␈ελO␈↓ π2␈εα(␈↓ π>␈ελq␈↓ πN␈εα)␈αλ+␈↓ λ∞␈ελO␈↓ λ(␈εα(␈↓ λ4␈ελr␈↓ λR␈ελq␈↓ λh␈εαlog␈↓ ≤␈ελr␈↓ ,␈εα)
␈β ␈↓ ↓w␈εk
␈β ␈↓ ε∨␈ε¬2
␈β '␈↓ ¬=␈εα+␈↓ ¬i␈ελO␈↓ εβ␈εα(␈↓ ε∂␈ελr␈↓ ε.␈ελq␈↓ εD␈εαlog␈↓ εx␈ελr␈↓ πλ␈εα)␈αλ+␈↓ πH␈ελO␈↓ πb␈εα(␈↓ πn␈ελr␈↓ π⎇␈ελq␈↓ λ∞␈εα)␈αλ+␈↓ λN␈ελO␈↓ λh␈εα(␈↓ λt␈ελq␈↓ ∧␈εα)␈αλ+␈αλ(2␈↓ b␈ελr␈↓ z␈εα+␈αλ1)␈↓
D␈ελt
␈β 4␈↓
N␈εk␈↓
]␈ε→␈␈ε¬1
␈β V␈↓ αs␈ε¬2
␈β ]␈↓ α∂␈εα=␈↓ α=␈ελO␈↓ αW␈εα(␈↓ αc␈ελr␈↓ βα␈ελq␈↓ β_␈εαlog␈↓ βL␈ελr␈↓ β\␈εα)␈αλ+␈αλ(2␈↓ ∧:␈ελr␈↓ ∧Q␈εα+␈αλ1)␈↓ ¬≠␈ελt␈↓ ¬`␈εα.
␈β j␈↓ ¬&␈εk␈↓ ¬5␈ε→␈␈ε¬␈α␈1
␈β
!␈↓ ↓H␈εαTh␈α␈us␈αthere␈αis␈αa␈αconstan␈α␈t␈↓ ∧R␈ελc␈↓ ∧l␈εαsuch␈αthat
␈β
f␈↓ ¬4␈ε¬2
␈β
l␈↓ ∧E␈ελt␈↓ ∧h␈ε⊗∀␈↓ ¬⊗␈ελc␈↓ ¬$␈ελr␈↓ ¬C␈ελq␈↓ ¬d␈εαlg␈↓ εε␈ελr␈↓ ε)␈εα+␈αλ(2␈↓ εs␈ελr␈↓ π↔␈εα+␈αλ1)␈↓ πa␈ελt␈↓ λ%␈εα.
␈β
y␈↓ ∧P␈εk␈↓ ¬P␈εk␈↓ ε∪␈εk␈↓ π␈εk␈↓ πl␈εk␈↓ πz␈ε→␈␈ε¬1
␈β
}␈↓ ¬4␈εk
␈β6␈↓ ↓H␈εαTo␈αcomplete␈αthe␈αestimation␈αof␈↓ ¬0␈ελt␈↓ ¬U␈εαw␈α␈e␈αcan␈αpro␈α␈v␈α␈e␈αby␈αbrute␈αforce␈αthat
␈βD␈↓ ¬:␈εk
␈β⎇␈↓ π∃␈∧⎇π∃αZ
␈β}␈↓ εq␈ε⊗p
␈β∧␈↓ εM␈ε¬2.5␈↓ π~␈ε¬lg␈↓ π5␈εq
␈β␈↓ ¬¬␈ελt␈↓ ¬)␈ε⊗∀␈↓ ¬W␈ελC␈↓ ¬t␈ελq␈↓ ε;␈εα2␈↓
p␈εα(18)
␈β
␈↓ πA␈ε
k␈↓ πM␈επ+1
␈β→␈↓ ¬⊂␈εk␈↓ ε↓␈εk␈↓ ε∂␈ε¬+1
␈βV␈↓ ↓H␈εαfor␈α some␈α
constan␈α␈t␈↓ βd␈ελC␈↓ ∧↓␈εα.␈αLet␈α
us␈α choose␈↓ ¬q␈ελC␈↓ ε_␈εα>␈α
20␈↓ εj␈ελc␈↓ εx␈εα,␈αand␈α let␈α
us␈α
also␈α tak␈α␈e␈↓ @␈ελC␈↓ g␈εαlarge␈α enough
␈β
↓␈↓ ↓H␈εαso␈α∂that␈α∂(18)␈α∞is␈α∂valid␈α∂for␈↓ ∧Q␈ελk␈↓ ∧r␈ε⊗∀␈↓ ¬%␈ελk␈↓ ¬C␈εα,␈α⊂where␈↓ εH␈ελk␈↓ εu␈εαwill␈α∂be␈α∂speci|ed␈α∂belo␈α␈w.␈α∀Then␈α∂when
␈β
∞␈↓ ¬5␈ε¬0␈↓ εW␈ε¬0
␈β
,␈↓ ↓H␈ελk␈↓ ↓c␈εα>␈↓ α⊃␈ελk␈↓ α0␈εα,␈αlet␈↓ αz␈ελQ␈↓ β*␈εα=␈↓ βX␈εαlg␈↓ βz␈ελq␈↓ ∧⊗␈εα,␈↓ ∧,␈ελR␈↓ ∧]␈εα=␈↓ ¬␈εαlg␈↓ ¬-␈ελr␈↓ ¬I␈εα;␈αw␈α␈e␈αhav␈α␈e␈αby␈αinduction
␈β
9␈↓ α!␈ε¬0␈↓ β∩␈εk␈↓ ∧π␈εk␈↓ ∧E␈εk␈↓ ¬:␈εk
␈β
s␈↓ πg␈∧
sπgα!
␈β
t␈↓ πC␈ε⊗p
␈β
{␈↓ ∧B␈ε¬2␈↓ π≡␈ε¬2␈α↓.5␈↓ πg␈εQ
␈β∞↓␈↓ β7␈ελt␈↓ β[␈ε⊗∀␈↓ ∧ ␈ελc␈↓ ∧↔␈ελq␈↓ ∧2␈ελr␈↓ ∧W␈εαlg␈↓ ∧y␈ελr␈↓ ¬≤␈εα+␈αλ(2␈↓ ¬f␈ελr␈↓ ε ␈εα+␈αλ1)␈↓ εS␈ελC␈↓ εq␈ελq␈↓ π␈εα2
␈β∞β␈↓ π{␈ε
k
␈β∞∞␈↓ βB␈εk␈↓ ∧$␈εk␈↓ ¬ε␈εk␈↓ ¬s␈εk␈↓ ε}␈εk
␈β∞∪␈↓ ∧B␈εk
␈β∞6␈↓ ¬H␈∧∞6¬HαZ
␈β∞7␈↓ ¬$␈ε⊗p
␈β∞=␈↓ ∧␈␈ε¬2.5␈↓ ¬L␈ε¬lg␈↓ ¬h␈εq
␈β∞D␈↓ β[␈εα=␈↓ ∧ ␈ελC␈↓ ∧&␈ελq␈↓ ∧m␈εα2␈↓ ε!␈εα(␈↓ ε-␈ελ⊃␈↓ εU␈εα+␈↓ π↓␈ελ⊃␈↓ π"␈εα),
␈β∞F␈↓ ¬s␈ε
k␈↓ ¬␈␈επ+1
␈β∞R␈↓ ∧3␈εk␈↓ ∧B␈ε¬+␈α␈1␈↓ ε?␈ε¬1␈↓ π∪␈ε¬2
␈β∞o␈↓ ↓H␈εαwhere
␈β∂␈↓ ∧∀␈ελc␈↓ εv␈εα1
␈β∂∃␈↓ ¬n␈∧∂∃¬nαC
␈β∂⊗␈↓ ¬J␈ε⊗p
␈β∂≤␈↓ ∧h␈εR␈↓ ¬ ␈ε→␈␈ε¬2.5␈↓ ¬n␈εQ
␈β∂≥␈↓ πN␈ε→␈␈↓ πk␈εR
␈β∂#␈↓ β0␈ελ⊃␈↓ β[␈εα=␈↓ ∧.␈ελR␈↓ ∧V␈εα2␈↓ ε;␈εα<␈↓ π∃␈ελR␈↓ π<␈εα2␈↓ λ⊗␈εα<␈α
0.05,
␈β∂$␈↓ ∧|␈ε
k␈↓ εα␈ε
k␈↓ ε∂␈επ+1
␈β∂%␈↓ λ␈ε
k
␈β∂0␈↓ βB␈ε¬1␈↓ ∧G␈εk␈↓ π.␈εk
␈β∂3␈↓ ∧
␈∧∂3∧
α≡␈↓ εm␈∧∂3εmα$
␈β∂;␈↓ ∧
␈ελC␈↓ εm␈εα20
␈β∂d␈↓ ∧ ␈ε↓∩␈↓ ¬λ␈ε↓∪
␈β∂g␈↓ ∧m␈εα1
␈β∂o␈↓ εβ␈∧∂oεβα!
␈β∂p␈↓ ¬←␈ε⊗p␈↓ εd␈∧∂pεdαC
␈β∂q␈↓ ε@␈ε⊗p
␈β∂w␈↓ ¬0␈ε¬2␈α↓.5(␈↓ εβ␈εQ␈↓ ε#␈ε→␈␈↓ εd␈εQ␈↓ π&␈ε¬)
␈β∂x␈↓ πz␈ε→␈␈ε¬␈α␈1␈α↓/4
␈β∂}␈↓ β0␈ελ⊃␈↓ β[␈εα=␈↓ ∧∨␈εα2␈αλ+␈↓ ¬≡␈εα2␈↓ π:␈ε⊗!␈↓ πh␈εα2␈↓ λL␈εα<␈α
0.85,
␈β∂␈␈↓ ε↔␈ε
k␈↓ εx␈ε
k␈↓ π∧␈επ+1
␈β⊂␈↓ βB␈ε¬2
␈β⊂∞␈↓ ∧i␈∧⊂∞∧iα≤
␈β⊂⊗␈↓ ∧i␈ελr
␈β⊂$␈↓ ∧v␈εk
␈β⊂\␈↓ ↓H␈εαsince
␈β⊂a␈↓ ¬w␈ε↓q
␈β⊂q␈↓ ∧u␈ε↓p␈↓ π∧␈ε↓p␈↓ λ⊂␈ε↓p
␈β⊂s␈↓ βK␈ε↓p
␈β⊂|␈↓ ε≠␈∧⊂|ε≠α↓B
␈β⊃␈↓ ¬→␈∧⊃¬→α'␈↓ π(␈∧⊃π(α'␈↓ λ4␈∧⊃λ4α'
␈β⊃∞␈↓ βo␈∧⊃∞βoαR
␈β⊃⊃␈↓ ↔␈ε¬1
␈β⊃∀␈↓ βo␈ελQ␈↓ ∧I␈ε⊗␈␈↓ ¬→␈ελQ␈↓ ¬I␈εα=␈↓ ε≠␈ελQ␈↓ εJ␈εα+␈ε⊗␈αλb␈↓ π(␈ελQ␈↓ πN␈ε⊗c␈↓ πd␈ε⊗␈␈↓ λ4␈ελQ␈↓ λe␈ε⊗!
␈β⊃"␈↓ ∧π␈εk␈↓ ∧∃␈ε¬+1␈↓ ¬1␈εk␈↓ ε3␈εk␈↓ π@␈εk␈↓ λL␈εk
␈β⊃%␈↓ ↔␈∧⊃% ↔α∂
␈β⊃'␈↓ ↔␈ε¬2
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα283
␈βα(␈↓ ↓H␈εαas␈↓ ↓s␈ελk␈↓ α∂␈ε⊗!␈α
1␈εα.␈αIt␈αfollo␈α␈ws␈αthat␈αw␈α␈e␈αcan␈α|nd␈↓ ε∨␈ελk␈↓ εH␈εαsuch␈αthat␈↓ πh␈ελ⊃␈↓ λ∩␈εα<␈α
0.95␈αfor␈αall␈↓ u␈ελk␈↓
⊃␈εα>␈↓
?␈ελk␈↓
]␈εα,␈αand
␈βα5␈↓ ε.␈ε¬0␈↓ πz␈ε¬2␈↓
N␈ε¬0
␈βαS␈↓ ↓H␈εαthis␈αcompletes␈αthe␈αproof␈αof␈α(18)␈αby␈αinduction.
␈βα␈␈↓ α␈εαFinally,␈αtherefore,␈α
w␈α␈e␈αmay␈αcompute␈↓ εL␈ελT␈↓ εe␈εα(␈↓ εq␈ελn␈↓ ππ␈εα).␈α
Since␈↓ λλ␈ελn␈↓ λ(␈εα>␈↓ λV␈ελq␈↓ %␈εα+␈↓ Q␈ελq␈↓
_␈εα,␈αw␈α␈e␈αhav␈α␈e
␈ββ␈↓ λc␈εk␈↓ λr␈ε→␈␈ε¬1␈↓ ↑␈εk␈↓ m␈ε→␈␈ε¬2
␈ββ*␈↓ ↓H␈ελq␈↓ α_␈εα<␈↓ αF␈ελn␈↓ α\␈εα;␈αhence
␈ββ8␈↓ ↓U␈εk␈↓ ↓c␈ε→␈␈ε¬1
␈ββ␈␈↓ βZ␈∧β␈βZαZ␈↓ ¬-␈∧β␈¬-α2␈↓
≥␈∧β␈
≥α2
␈β∧␈↓ β6␈ε⊗p␈↓ ¬ ␈ε⊗p␈↓ y␈ε⊗p
␈β∧π␈↓ β+␈ε→b␈↓ β←␈ε¬lg␈↓ βz␈εq␈↓ ∧4␈ε→c␈↓ ¬2␈ε¬lg␈↓ ¬M␈εn␈↓
"␈ε¬lg␈↓
=␈εn
␈β∧
␈↓ α≠␈ελr␈↓ αk␈εα=␈↓ β→␈εα2␈↓ ∧I␈εα<␈↓ ∧w␈εα2␈↓ ¬←␈εα,␈↓ ε7␈εαand␈↓ π9␈ελq␈↓ π←␈εα=␈↓ λ
␈ελr␈↓ λS␈ελq␈↓ $␈εα<␈↓ R␈ελn␈↓ g␈εα2␈↓
O␈εα.
␈β∧∂␈↓ ∧ε␈ε
k␈↓ ∧∩␈ε≠␈␈επ1
␈β∧~␈↓ α'␈εk␈↓ α6␈ε→␈␈ε¬1␈↓ πF␈εk␈↓ λ→␈εk␈↓ λ(␈ε→␈␈ε¬1␈↓ λ`␈εk␈↓ λo␈ε→␈␈ε¬␈α␈1
␈β∧e␈↓ ↓H␈εαTh␈α␈us
␈β¬∧␈↓ ¬M␈∧¬∧¬Mα8␈↓ π%␈∧¬∧π%α2␈↓ λG␈∧¬∧λGα2
␈⬬␈↓ ¬)␈ε⊗p␈↓ π↓␈ε⊗p␈↓ λ#␈ε⊗p
␈β¬␈↓ ¬∧␈ε¬2.5␈↓ ¬R␈ε¬lg␈↓ ¬m␈εq␈↓ π*␈ε¬lg␈↓ πE␈εn␈↓ πW␈ε¬+2␈α↓.5(␈↓ λK␈ε¬lg␈↓ λg␈εn␈↓ λy␈ε¬+␈α␈1␈α↓)
␈β¬∩␈↓ β=␈ελt␈↓ ∧␈ε⊗∀␈↓ ∧9␈ελC␈↓ ∧W␈ελq␈↓ ∧r␈εα2␈↓ ε∂␈εα<␈↓ ε=␈ελC␈↓ εZ␈ελn␈↓ εo␈εα2␈↓ -␈εα,
␈β¬∃␈↓ ¬x␈ε
k
␈β¬ ␈↓ βH␈εk␈↓ βV␈ε→␈␈ε¬1␈↓ ∧d␈εk
␈β¬Y␈↓ ↓H␈εαand,␈αsince␈↓ αp␈ελT␈↓ β ␈εα(␈↓ β∃␈ελn␈↓ β+␈εα)␈α
=␈↓ βo␈ελO␈↓ ∧ ␈εα(␈↓ ∧∃␈ελq␈↓ ∧0␈εα)␈αλ+␈↓ ∧p␈ελt␈↓ ¬5␈εα,␈αw␈α␈e␈αhav␈α␈e␈α|nally␈αderiv␈α␈ed␈αthe␈αfollo␈α␈wing␈αtheorem:
␈β¬f␈↓ ∧"␈εk␈↓ ∧{␈εk␈↓ ¬
␈ε→␈␈ε¬␈α␈1
␈βε≡␈↓ ↓H␈ε∩Theorem␈α
C.␈ε∂␈α⊗There␈α
is␈α
a␈αconstan␈α␈t␈↓ ¬N␈ελc␈↓ ¬t␈ε∂such␈αthat␈α
the␈αex␈α␈ecution␈α
time␈αof␈α
Algorithm␈α
C
␈βε+␈↓ ¬[␈ε¬0
␈βεE␈↓ ∧∞␈∧εE∧∞α2
␈βεF␈↓ βj␈ε⊗p
␈βεM␈↓ βE␈ε¬3.5␈↓ ∧∩␈ε¬lg␈↓ ∧.␈εn
␈βεS␈↓ ↓H␈ε∂is␈αless␈αthan␈↓ βα␈ελc␈↓ β≥␈ελn␈↓ β3␈εα2␈↓ ∧K␈ε∂cy␈α␈cles.
␈βεX␈↓ ¬X␈∧εX¬X≠∂
␈βεa␈↓ β∂␈ε¬0
␈βπ∃␈↓ β`␈∧π∃β`α2␈↓ ¬s␈∧π∃¬sα2
␈βπ⊗␈↓ β<␈ε⊗p␈↓ ¬O␈ε⊗p
␈βπ≥␈↓ β↔␈ε¬3.5␈↓ βe␈ε¬lg␈↓ ∧␈εn␈↓ ∧q␈ε¬1+3␈α↓.5/␈↓ ¬x␈ε¬lg␈↓ ε∪␈εn
␈βπ#␈↓ α␈εαSince␈↓ αo␈ελn␈↓ β¬␈εα2␈↓ ∧%␈εα=␈↓ ∧[␈ελn␈↓ ε%␈εα,␈α∪this␈α⊃result␈α∩is␈α⊃noticeably␈α⊃stronger␈α⊃than
␈βπN␈↓ ↓H␈εαTheorem␈αA.␈αBy␈αadding␈α
a␈αfew␈αcomplications␈αto␈αthe␈α
algorithm,␈αpushing␈αthe␈αideas
␈βπy␈↓ ↓H␈εαto␈α
their␈αapparen␈α␈t␈αlimits␈α
(see␈αex␈α␈ercise␈α5),␈αw␈α␈e␈αcan␈α
impro␈α␈v␈α␈e␈αthe␈αestimated␈α
ex␈α␈ecution
␈βλ%␈↓ ↓H␈εαtime␈αto
␈βλD␈↓ ε←␈∧λDε←αA
␈βλE␈↓ ε;␈ε⊗p
␈βλL␈↓ ε←␈ε¬2␈↓ εs␈ε¬lg␈↓ π∞␈εn
␈βλR␈↓ ∧o␈ελT␈↓ ¬λ␈εα(␈↓ ¬∀␈ελn␈↓ ¬*␈εα)␈α
=␈↓ ¬n␈ελO␈↓ ελ␈εα(␈↓ ε∀␈ελn␈↓ ε)␈εα2␈↓ π&␈εαlog␈↓ πZ␈ελn␈↓ πo␈εα).␈↓
p␈εα(19)
␈β 2␈↓ ↓H␈ε∩B.␈α∞A␈α∂modular␈α∂method.␈εα␈α≡There␈α∂is␈α∂another␈α∂way␈α∞to␈α∂m␈α␈ultiply␈α∂large␈α∂n␈α␈um␈α␈bers␈α∞v␈α␈ery
␈β ]␈↓ ↓H␈εαrapidly,␈αbased␈αon␈αthe␈αideas␈αof␈α
modular␈αarithmetic␈αas␈αpresen␈α␈ted␈αin␈αSection␈α4.3.2.
␈β
λ␈↓ ↓H␈εαIt␈αis␈α
v␈α␈ery␈αhard␈α
to␈α
believ␈α␈e␈αat␈α
|rst␈αthat␈α
this␈α
method␈αcan␈α
be␈αof␈α
advan␈α␈tage,␈α
since␈αa
␈β
4␈↓ ↓H␈εαm␈α␈ultiplication␈α
algorithm␈α based␈α
on␈α
modular␈α
arithmetic␈α
m␈α␈ust␈α
include␈α
the␈α
choice␈α of
␈β
←␈↓ ↓H␈εαmoduli␈α
and␈α
the␈α∞con␈α␈v␈α␈ersion␈α
of␈α
n␈α␈um␈α␈bers␈α∞in␈α␈to␈α
and␈α
out␈α∞of␈α
modular␈α
represen␈α␈tation,
␈β
␈↓ ↓H␈εαbesides␈α∂the␈α∂actual␈α⊂m␈α␈ultiplication␈α∂operation␈α∂itself.␈α⊗In␈α∂spite␈α⊂of␈α∂these␈α∂formidable
␈β5␈↓ ↓H␈εαdi}culties,␈α
A.␈α
Sch␈↓ βh␈εα∪␈↓ βh␈εαo␈↓ βz␈εαnhage␈α
disco␈α␈v␈α␈ered␈α
that␈α∞all␈α
of␈α
these␈α
operations␈α
can␈α
be␈α
carried
␈β`␈↓ ↓H␈εαout␈αquite␈αrapidly.
␈β␈↓ α␈εαIn␈αorder␈αto␈αunderstand␈αthe␈αessen␈α␈tial␈αmechanism␈αof␈αSch␈↓ λf␈εα∪␈↓ λf␈εαo␈↓ λx␈εαnhage's␈αmethod,␈αw␈α␈e
␈β7␈↓ ↓H␈εαshall␈αlook␈αat␈αa␈αspecial␈αcase.␈αConsider␈αthe␈αsequence␈αde|ned␈αby␈αthe␈αrules
␈β
⊂␈↓ ∧]␈ελq␈↓ ¬β␈εα=␈α
1,␈↓ ε≠␈ελq␈↓ εk␈εα=␈α
3␈↓ π+␈ελq␈↓ πO␈ε⊗␈␈εα␈αλ1,␈↓
p␈εα(20)
␈β
≥␈↓ ∧j␈ε¬0␈↓ ε(␈εk␈↓ ε6␈ε¬+1␈↓ π8␈εk
␈β
c␈↓ β<␈εk␈↓ ∧∃␈εk␈↓ ∧$␈ε→␈␈ε¬␈α␈1␈↓ εv␈εk
␈β
e␈↓ εF␈ε¬1
␈β
h␈↓ ↓H␈εαso␈α∂that␈↓ αI␈ελq␈↓ αu␈εα=␈↓ β*␈εα3␈↓ βU␈ε⊗␈␈↓ ∧β␈εα3␈↓ ∧Y␈ε⊗␈␈↓ ¬λ␈ε⊗↓␈αε↓␈αε↓␈↓ ¬<␈ε⊗␈␈εα␈α1␈α⊂=␈↓ εX␈εα(␈↓ εd␈εα3␈↓ π∂␈εα+␈α1).␈α↔We␈α⊂will␈α⊂study␈α⊂a␈α∂procedure
␈β
u␈↓ αV␈εk
␈β
x␈↓ εF␈∧
xεFα∂
␈β
{␈↓ εF␈ε¬2
␈β∞∪␈↓ ↓H␈εαthat␈α⊂m␈α␈ultiplies␈α⊂(18␈↓ βs␈ελq␈↓ ∧~␈εα+␈α
8)-bit␈α⊃n␈α␈um␈α␈bers,␈α⊃in␈α⊂terms␈α⊂of␈α⊃a␈α⊂method␈α⊂for␈α⊂m␈α␈ultiplying
␈β∞!␈↓ ∧␈εk
␈β∞>␈↓ ↓H␈εα(18␈↓ ↓x␈ελq␈↓ αH␈εα+␈α
8)-bit␈α∞n␈α␈um␈α␈bers.␈α∪Th␈α␈us,␈α∂if␈α∂w␈α␈e␈α∞kno␈α␈w␈α∂ho␈α␈w␈α∞to␈α∂m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α∞having
␈β∞L␈↓ α¬␈εk␈↓ α∪␈ε→␈␈ε¬1
␈β∞j␈↓ ↓H␈εα(18␈↓ ↓x␈ελq␈↓ α→␈εα+␈αε8)␈α
=␈α
26␈αbits,␈α
the␈αprocedure␈α
to␈αbe␈α
described␈αwill␈α
sho␈α␈w␈αus␈α
ho␈α␈w␈αto␈α
m␈α␈ultiply
␈β∞w␈↓ α¬␈ε¬0
␈β∂∃␈↓ ↓H␈εαn␈α␈um␈α␈bers␈α∞of␈α∂(18␈↓ β7␈ελq␈↓ β]␈εα+␈α
8)␈α∞=␈α∂44␈α∂bits,␈α∂then␈α∂98␈α∂bits,␈α⊂then␈α∞260␈α∂bits,␈α⊂etc.,␈α∂ev␈α␈en␈α␈tually
␈β∂"␈↓ βD␈ε¬1
␈β∂@␈↓ ↓H␈εαincreasing␈αthe␈αn␈α␈um␈α␈ber␈αof␈αbits␈αby␈αalmost␈αa␈αfactor␈αof␈α3␈αat␈αeach␈αstep.
␈β∂l␈↓ α␈εαLet␈↓ αN␈ελp␈↓ αw␈εα=␈α
18␈↓ βI␈ελq␈↓ βl␈εα+␈αλ8.␈αWhen␈αm␈α␈ultiplying␈↓ εh␈ελp␈↓ ππ␈εα-bit␈αn␈α␈um␈α␈bers,␈αthe␈αidea␈αis␈αto␈αuse␈αthe
␈β∂y␈↓ α←␈εk␈↓ βV␈εk␈↓ εy␈εk
␈β⊂↔␈↓ ↓H␈εαsix␈αmoduli
␈β⊂a␈↓ βE␈ε¬6␈↓ βS␈εq␈↓ βk␈ε→␈␈ε¬␈α␈1␈↓ ε%␈ε¬6␈↓ ε3␈εq␈↓ εK␈ε¬+1
␈β⊂b␈↓ ¬␈ε¬6␈↓ ∀␈εq␈↓ +␈ε¬+2
␈β⊂f␈↓ αN␈ελm␈↓ β¬␈εα=␈↓ β3␈εα2␈↓ ∧≡␈ε⊗␈␈εα␈αλ1,␈↓ ¬.␈ελm␈↓ ¬e␈εα=␈↓ ε∪␈εα2␈↓ ε}␈ε⊗␈␈εα␈αλ1,
␈β⊂g␈↓ λ∞␈ελm␈↓ λE␈εα=␈↓ λs␈εα2␈↓ ↑␈ε⊗␈␈εα␈αλ1,
␈β⊂j␈↓ β↑␈ε
k␈↓ ε>␈ε
k
␈β⊂k␈↓ ∨␈ε
k
␈β⊂t␈↓ αl␈ε¬1␈↓ ¬L␈ε¬2␈↓ λ-␈ε¬3
␈β⊂}␈↓
p␈εα(21)
␈β⊃↔␈↓ βE␈ε¬6␈↓ βS␈εq␈↓ βk␈ε¬+␈α␈3␈↓ ε%␈ε¬6␈↓ ε3␈εq␈↓ εK␈ε¬+5
␈β⊃_␈↓ ¬␈ε¬6␈↓ ∀␈εq␈↓ +␈ε¬+7
␈β⊃≤␈↓ αN␈ελm␈↓ β¬␈εα=␈↓ β3␈εα2␈↓ ∧≡␈ε⊗␈␈εα␈αλ1,␈↓ ¬.␈ελm␈↓ ¬e␈εα=␈↓ ε∪␈εα2␈↓ ε}␈ε⊗␈␈εα␈αλ1,
␈β⊃≥␈↓ λ∞␈ελm␈↓ λE␈εα=␈↓ λs␈εα2␈↓ ↑␈ε⊗␈␈εα␈αλ1.
␈β⊃ ␈↓ β↑␈ε
k␈↓ ε>␈ε
k
␈β⊃!␈↓ ∨␈ε
k
␈β⊃*␈↓ αl␈ε¬4␈↓ ¬L␈ε¬5␈↓ λ-␈ε¬6
␈β∪(
␈β↓Y␈↓ ↓H␈εα284␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ ↓H␈εαThese␈αmoduli␈αare␈αrelativ␈α␈ely␈αprime,␈αby␈αEq.␈α4.3.2↑18,␈αsince␈αthe␈αexponen␈α␈ts
␈βαw␈↓ α]␈εα6␈↓ αo␈ελq␈↓ β∪␈ε⊗␈␈εα␈αλ1,␈α*6␈↓ ∧↔␈ελq␈↓ ∧;␈εα+␈αλ1,␈α*6␈↓ ¬?␈ελq␈↓ ¬b␈εα+␈αλ2,␈α*6␈↓ εf␈ελq␈↓ π
␈εα+␈αλ3,␈α*6␈↓ λ∞␈ελq␈↓ λ1␈εα+␈αλ5,␈α*6␈↓ 5␈ελq␈↓ Y␈εα+␈αλ7␈↓
p␈εα(22)
␈ββ¬␈↓ α|␈εk␈↓ ∧$␈εk␈↓ ¬L␈εk␈↓ εs␈εk␈↓ λ≠␈εk␈↓ B␈εk
␈ββF␈↓ ↓H␈εαare␈α
always␈α
relativ␈α␈ely␈α
prime␈α
(see␈α
ex␈α␈ercise␈α
6).␈αThe␈α
six␈α
moduli␈α
in␈α
(21)␈α
are␈α
capable␈α
of
␈ββl␈↓ λ7␈ε¬36␈↓ λS␈εq␈↓ λk␈ε¬+16␈↓ p␈ε¬2␈↓ ␈␈εp
␈ββq␈↓ ↓H␈εαrepresen␈α␈ting␈αn␈α␈um␈α␈bers␈αup␈α
to␈↓ ¬∧␈ελm␈↓ ¬/␈εα=␈↓ ¬]␈ελm␈↓ ε
␈ελm␈↓ ε7␈ελm␈↓ εd␈ελm␈↓ π⊃␈ελm␈↓ π>␈ελm␈↓ πv␈εα>␈↓ λ%␈εα2␈↓ /␈εα=␈↓ ↑␈εα2␈↓
→␈εα,␈α
so␈αthere
␈ββu␈↓ λ←␈ε
k␈↓
␈ε
k
␈ββ␈␈↓ ¬|␈ε¬1␈↓ ε)␈ε¬2␈↓ εV␈ε¬3␈↓ πβ␈ε¬4␈↓ π0␈ε¬5␈↓ π]␈ε¬6
␈β∧≥␈↓ ↓H␈εαis␈α
no␈α
chance␈α∞of␈α
o␈α␈v␈α␈er⎇o␈α␈w␈α
in␈α∞the␈α
m␈α␈ultiplication␈α∞of␈↓ πP␈ελp␈↓ πo␈εα-bit␈α∞n␈α␈um␈α␈bers␈↓ F␈ελu␈↓ i␈εαand␈↓
1␈ελv␈↓
C␈εα.␈α⊂Th␈α␈us
␈β∧*␈↓ πa␈εk
␈β∧H␈↓ ↓H␈εαw␈α␈e␈αmay␈αuse␈αthe␈αfollo␈α␈wing␈αmethod,␈αwhen␈↓ εL␈ελk␈↓ εg␈εα>␈α
0:
␈⬬␈↓ ↓b␈εαa)␈↓ α␈εαCompute␈↓ β-␈ελu␈↓ β`␈εα=␈↓ ∧∪␈ελu␈↓ ∧/␈εαmod␈↓ ∧y␈ελm␈↓ ¬&␈εα,␈↓ ¬@␈εα.␈αε.␈αε.␈↓ ¬p␈εα,␈↓ ε
␈ελu␈↓ ε=␈εα=␈↓ εp␈ελu␈↓ π␈εαmod␈↓ πV␈ελm␈↓ λβ␈εα;␈α⊃and␈↓ λg␈ελv␈↓ ∃␈εα=␈↓ I␈ελv␈↓ a␈εαmod␈↓
+␈ελm␈↓
X␈εα,␈↓
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β¬∪␈↓ βB␈ε¬1␈↓ ¬_␈ε¬1␈↓ ε∨␈ε¬6␈↓ πu␈ε¬6␈↓ λw␈ε¬1␈↓
J␈ε¬1
␈β¬1␈↓ α␈ελv␈↓ α4␈εα=␈↓ αb␈ελv␈↓ α{␈εαmod␈↓ βE␈ελm␈↓ βr␈εα.
␈β¬>␈↓ α≤␈ε¬6␈↓ βd␈ε¬6
␈β¬e␈↓ ↓`␈εαb)␈↓ α␈εαMultiply␈↓ β"␈ελu␈↓ βT␈εαby␈↓ ∧
␈ελv␈↓ ∧(␈εα,␈↓ ∧A␈ελu␈↓ ∧r␈εαby␈↓ ¬(␈ελv␈↓ ¬G␈εα,␈↓ ¬`␈εα.␈αε.␈αε.␈↓ ε⊂␈εα,␈↓ ε(␈ελu␈↓ εZ␈εαby␈↓ π⊂␈ελv␈↓ π.␈εα.␈α∪These␈α∞are␈α∂n␈α␈um␈α␈bers␈α∞of␈α∞at␈α∞most
␈β¬r␈↓ β7␈ε¬1␈↓ ∧~␈ε¬1␈↓ ∧U␈ε¬2␈↓ ¬8␈ε¬2␈↓ ε=␈ε¬6␈↓ π ␈ε¬6
␈βε⊂␈↓ α␈εα6␈↓ α≡␈ελq␈↓ α@␈εα+␈απ7␈α
=␈α
18␈↓ βY␈ελq␈↓ ∧&␈εα+␈απ1␈α
<␈↓ ¬≠␈ελp␈↓ ¬q␈εαbits,␈αso␈αthe␈αm␈α␈ultiplications␈αcan␈αbe␈αperformed
␈βε≡␈↓ α+␈εk␈↓ βf␈εk␈↓ βu␈ε→␈␈ε¬␈α␈1␈↓ ¬,␈εk␈↓ ¬;␈ε→␈␈ε¬1
␈βε;␈↓ α␈εαby␈αusing␈αthe␈αassumed␈↓ ∧l␈ελp␈↓ ¬7␈εα-bit␈αm␈α␈ultiplication␈αprocedure.
␈βεI␈↓ ∧⎇␈εk␈↓ ¬␈ε→␈␈ε¬␈α␈1
␈βεp␈↓ ↓d␈εαc)␈↓ α␈εαCompute␈↓ β*␈ελw␈↓ βZ␈εα=␈↓ ∧λ␈ελu␈↓ ∧+␈ελv␈↓ ∧O␈εαmod␈↓ ¬→␈ελm␈↓ ¬F␈εα,␈↓ ¬\␈ελw␈↓ ε
␈εα=␈↓ ε;␈ελu␈↓ ε]␈ελv␈↓ πα␈εαmod␈↓ πL␈ελm␈↓ πy␈εα,␈↓ λ∂␈εα.␈αε.␈αε.␈↓ λ?␈εα,␈↓ λU␈ελw␈↓ ¬␈εα=␈↓ 3␈ελu␈↓ V␈ελv␈↓ z␈εαmod␈↓
D␈ελm␈↓
q␈εα.
␈βε⎇␈↓ βB␈ε¬1␈↓ ∧≥␈ε¬1␈↓ ∧;␈ε¬1␈↓ ¬8␈ε¬1␈↓ ¬t␈ε¬2␈↓ εO␈ε¬2␈↓ εm␈ε¬2␈↓ πj␈ε¬2␈↓ λl␈ε¬6␈↓ G␈ε¬6␈↓ f␈ε¬6␈↓
c␈ε¬6
␈βπ$␈↓ ↓`␈εαd)␈↓ α␈εαCompute␈↓ β*␈ελw␈↓ βQ␈εαsuch␈αthat␈α0␈ε⊗␈α
∀␈↓ ¬;␈ελw␈↓ ¬`␈εα<␈↓ ε∞␈ελm␈↓ ε-␈εα,␈↓ εC␈ελw␈↓ εd␈εαmod␈↓ π.␈ελm␈↓ πe␈εα=␈↓ λ∪␈ελw␈↓ λ9␈εα,␈↓ λO␈εα.␈αε.␈αε.␈↓ λ␈␈εα,␈↓ ∃␈ελw␈↓ 6␈εαmod␈↓
␈ελm␈↓
7␈εα=␈↓
e␈ελw␈↓ ␈εα.
␈βπ2␈↓ πM␈ε¬1␈↓ λ+␈ε¬1␈↓
∨␈ε¬6␈↓
⎇␈ε¬6
␈βπb␈↓ α␈εαLet␈↓ αO␈ελt␈↓ αv␈εαbe␈α
the␈α∞amoun␈α␈t␈α
of␈α
time␈α∞needed␈α
for␈α
this␈α∞process.␈α⊂It␈α
is␈α
not␈α∞hard␈α
to␈α
see
␈βπo␈↓ αZ␈εk
␈βλλ␈↓
M␈εe
␈βλ
␈↓ ↓H␈εαthat␈α
operation␈α
(a)␈α
tak␈α␈es␈↓ ∧M␈ελO␈↓ ∧g␈εα(␈↓ ∧s␈ελp␈↓ ¬∩␈εα)␈α
cy␈α␈cles,␈α∞since␈α
the␈α
determination␈α
of␈↓ J␈ελu␈↓ e␈εαmod␈↓
/␈εα(␈↓
;␈εα2␈↓
b␈ε⊗␈␈εα␈αλ1)
␈βλ~␈↓ ¬∧␈εk
␈βλ8␈↓ ↓H␈εαis␈α∞quite␈α∞simple␈α∞(lik␈α␈e␈α∞\casting␈α∞out␈α∂nines"),␈α∞as␈α∞sho␈α␈wn␈α∂in␈α∞Section␈α∞4.3.2.␈α∩Similarly,
␈βλc␈↓ ↓H␈εαoperation␈α(c)␈α
tak␈α␈es␈↓ β{␈ελO␈↓ ∧∃␈εα(␈↓ ∧!␈ελp␈↓ ∧@␈εα)␈α
cy␈α␈cles.␈α∞Operation␈α
(b)␈α
requires␈αessen␈α␈tially␈α
6␈↓ v␈ελt␈↓
G␈εαcy␈α␈cles.
␈βλq␈↓ ∧2␈εk␈↓
↓␈εk␈↓
⊂␈ε→␈␈ε¬␈α␈1
␈β ∂␈↓ ↓H␈εαThis␈αλleav␈α␈es␈αλus␈α with␈αλoperation␈α (d),␈α which␈αλseems␈αλto␈α be␈αλquite␈α a␈αλdi}cult␈αλcomputation;
␈β :␈↓ ↓H␈εαbut␈α∞Sch␈↓ αD␈εα∪␈↓ αD␈εαo␈↓ αV␈εαnhage␈α∂has␈α∂found␈α∂an␈α∂ingenious␈α∞way␈α∂to␈α∂perform␈α∂step␈α∂(d)␈α∞in␈↓
↓␈ελO␈↓
≠␈εα(␈↓
'␈ελp␈↓
M␈εαlog␈↓ ↓␈ελp␈↓ ␈εα)
␈β G␈↓
8␈εk␈↓ ∩␈εk
␈β e␈↓ ↓H␈εαcy␈α␈cles,␈αand␈αthis␈αis␈αthe␈αcrux␈αof␈αthe␈αmethod.␈αAs␈αa␈αconsequence,␈αw␈α␈e␈αhav␈α␈e
␈β
4␈↓ ∧r␈ελt␈↓ ¬∃␈εα=␈α
6␈↓ ¬U␈ελt␈↓ ε!␈εα+␈↓ εM␈ελO␈↓ εg␈εα(␈↓ εs␈ελp␈↓ π→␈εαlog␈↓ πM␈ελp␈↓ πm␈εα).
␈β
A␈↓ ∧|␈εk␈↓ ¬`␈εk␈↓ ¬n␈ε→␈␈ε¬1␈↓ π∧␈εk␈↓ π↑␈εk
␈β
}␈↓ β∂␈εk␈↓ β≡␈ε¬+2
␈ββ␈↓ ↓H␈εαSince␈↓ α&␈ελp␈↓ αO␈εα=␈↓ α⎇␈εα3␈↓ βQ␈εα+␈αλ17,␈αw␈α␈e␈αcan␈αsho␈α␈w␈αthat
␈β⊃␈↓ α7␈εk
␈βK␈↓ ε@␈ε¬log␈↓ εu␈ε¬6
␈βL␈↓ ¬5␈εk␈↓ λ␈ε¬1.63
␈βR␈↓ ∧+␈ελt␈↓ ∧O␈εα=␈↓ ∧⎇␈ελO␈↓ ¬↔␈εα(␈↓ ¬#␈εα6␈↓ ¬C␈εα)␈α
=␈↓ επ␈ελO␈↓ ε!␈εα(␈↓ ε-␈ελp␈↓ πβ␈εα)␈α
=␈↓ πG␈ελO␈↓ πa␈εα(␈↓ πm␈ελp␈↓ λ3␈εα).␈↓
p␈εα(23)
␈βW␈↓ εe␈επ3
␈β`␈↓ ∧6␈εk
␈βd␈↓ λ␈εk
␈βe␈↓ ε@␈εk
␈β!␈↓ ↓H␈εα(See␈αex␈α␈ercise␈α7.)
␈βG␈↓
(␈ε¬lg␈↓
C␈ε¬3
␈βM␈↓ α␈εαAlthough␈α∂the␈α∂modular␈α∂method␈α∂is␈α⊂more␈α∂complicated␈α∂than␈α∂the␈↓ l␈ελO␈↓
ε␈εα(␈↓
∩␈ελn␈↓
Q␈εα)␈α∂pro-
␈βx␈↓ ↓H␈εαcedure␈α⊂discussed␈α⊂at␈α⊂the␈α⊃beginning␈α⊂of␈α⊂this␈α⊂section,␈α∩it␈α⊂does,␈α⊃in␈α⊃fact,␈α⊃lead␈α⊂to␈α⊂an
␈β
≡␈↓ π≥␈ε¬2
␈β
#␈↓ ↓H␈εαex␈α␈ecution␈α⊂time␈α⊂substan␈α␈tially␈α⊂better␈α⊂than␈↓ εb␈ελO␈↓ ε|␈εα(␈↓ πλ␈ελn␈↓ π,␈εα)␈α⊂for␈α⊂the␈α⊂m␈α␈ultiplication␈α⊂of␈↓
←␈ελn␈↓
t␈εα-bit
␈β
N␈↓ ↓H␈εαn␈α␈um␈α␈bers.␈α⊃Th␈α␈us␈α
w␈α␈e␈α∞can␈α∞impro␈α␈v␈α␈e␈α
on␈α∞the␈α∞classical␈α
method␈α∞by␈α
using␈α∞either␈α∞of␈α
t␈α␈w␈α␈o
␈β
y␈↓ ↓H␈εαcompletely␈αdi{eren␈α␈t␈αapproaches.
␈β∞%␈↓ α␈εαLet␈αus␈α
no␈α␈w␈αanalyze␈αoperation␈α
(d)␈αabo␈α␈v␈α␈e.␈α
Assume␈αthat␈α
w␈α␈e␈αare␈αgiv␈α␈en␈α
a␈αset␈αof
␈β∞P␈↓ ↓H␈εαpositiv␈α␈e␈αin␈α␈tegers␈↓ βR␈ελe␈↓ βw␈εα<␈↓ ∧%␈ελe␈↓ ∧J␈εα<␈↓ ∧x␈ε⊗↓␈αε↓␈αε↓␈↓ ¬,␈εα<␈↓ ¬Z␈ελe␈↓ ¬u␈εα,␈αrelativ␈α␈ely␈αprime␈αin␈αpairs;␈αlet
␈β∞]␈↓ β←␈ε¬1␈↓ ∧2␈ε¬2␈↓ ¬g␈εr
␈β∂→␈↓ βS␈εe␈↓ ¬␈␈εe␈↓ 1␈εe
␈β∂∨␈↓ α\␈ελm␈↓ β∪␈εα=␈↓ βA␈εα2␈↓ βr␈ε⊗␈␈εα␈αλ1,␈↓ ¬λ␈ελm␈↓ ¬?␈εα=␈↓ ¬m␈εα2␈↓ ε≥␈ε⊗␈␈εα␈αλ1,␈↓ π3␈εα.␈αε.␈αε.␈↓ πc␈εα,␈↓ λ;␈ελm␈↓ λq␈εα=␈↓ ∨␈εα2␈↓ P␈ε⊗␈␈εα␈αλ1.␈↓
p␈εα(24)
␈β∂!␈↓ β↑␈επ1␈↓ ε
␈επ2␈↓ <␈ε
r
␈β∂,␈↓ α{␈ε¬1␈↓ ¬&␈ε¬2␈↓ λZ␈εr
␈β∂n␈↓ ↓H␈εαWe␈α
are␈α∞also␈α∞giv␈α␈en␈α∞n␈α␈um␈α␈bers␈↓ ¬∧␈ελw␈↓ ¬*␈εα,␈↓ ¬B␈εα.␈αε.␈αε.␈↓ ¬r␈εα,␈↓ ε
␈ελw␈↓ ε=␈εαsuch␈α∞that␈α∞0␈ε⊗␈α
∀␈↓ λ1␈ελw␈↓ λc␈ε⊗∀␈↓ ∀␈ελm␈↓ @␈εα.␈α⊃Our␈α∞job␈α∞is␈ε∂␈α
to
␈β∂{␈↓ ¬≠␈ε¬1␈↓ ε"␈εr␈↓ λI␈εj␈↓ 2␈εj
␈β⊂→␈↓ ↓H␈ε∂determine␈α the␈α binary␈α represen␈α␈tation␈α of␈α
the␈α n␈α␈um␈α␈ber␈↓ πa␈ελw␈↓ λ¬␈ε∂that␈α satis|es␈α the␈α conditions
␈β⊂a␈↓ ¬ ␈εα0␈ε⊗␈α
∀␈↓ ¬S␈ελw␈↓ ¬x␈εα<␈↓ ε&␈ελm␈↓ εR␈ελm␈↓ π¬␈εα.␈αε.␈αε.␈↓ π5␈ελm␈↓ πa␈εα,
␈β⊂n␈↓ εD␈ε¬1␈↓ εq␈ε¬2␈↓ πT␈εr
␈β⊂}␈↓
p␈εα(25)
␈β⊃~␈↓ α}␈ελw␈↓ β#␈ε⊗⊃␈↓ βQ␈ελw␈↓ ∧↓␈εα(modulo␈↓ ¬
␈ελm␈↓ ¬:␈εα),␈↓ ε≡␈εα.␈αε.␈αε.␈↓ εN␈εα,␈↓ π&␈ελw␈↓ πK␈ε⊗⊃␈↓ πy␈ελw␈↓ λ(␈εα(modulo␈↓ 4␈ελm␈↓ `␈εα).
␈β⊃(␈↓ βi␈ε¬1␈↓ ¬,␈ε¬1␈↓ λ⊃␈εr␈↓ S␈εr
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα285
␈βα&␈↓ ↓H␈εαThe␈αmethod␈αis␈αbased␈αon␈α(23)␈αand␈α(24)␈αof␈αSection␈α4.3.2.␈αFirst␈αw␈α␈e␈αcompute
␈βα[␈↓ α(␈ε↓␈␈↓ π=␈ε↓↓
␈βαt␈↓ ↓b␈ε→0␈↓ βw␈ε→0␈↓ ¬∂␈ε→0␈↓ π¬␈ε→0
␈βαz␈↓ ↓H␈ελw␈↓ ↓z␈εα=␈↓ α<␈εα.␈αε.␈αε.␈↓ αl␈εα((␈↓ β∧␈ελw␈↓ β1␈ε⊗␈␈↓ β]␈ελw␈↓ ∧ε␈εα)␈↓ ∧_␈ελc␈↓ ∧H␈ε⊗␈␈↓ ∧t␈ελw␈↓ ¬≡␈εα)␈↓ ¬0␈ελc␈↓ ¬`␈ε⊗␈␈↓ ε␈ε⊗↓␈αε↓␈αε↓␈↓ ε>␈ε⊗␈␈↓ εj␈ελw␈↓ πQ␈ελc␈↓ λ=␈εαmod␈↓ π␈ελm␈↓ 3␈εα,␈↓
p␈εα(26)
␈ββλ␈↓ β≠␈εj␈↓ ∧%␈ε¬1␈↓ ∧3␈εj␈↓ ¬=␈ε¬2␈↓ ¬K␈εj␈↓ π↑␈ε¬(␈↓ πh␈εj␈↓ πu␈ε→␈␈ε¬1␈α↓)␈↓ λ*␈εj␈↓ &␈εj
␈ββ␈↓ ↓b␈εj␈↓ βw␈ε¬1␈↓ ¬∂␈ε¬2␈↓ π¬␈εj␈↓ π∩␈ε→␈␈ε¬1
␈ββI␈↓ ∧←␈ε→0
␈ββN␈↓ ↓H␈εαfor␈↓ α␈ελj␈↓ α~␈εα=␈α
2,␈↓ αp␈εα.␈αε.␈αε.␈↓ β ␈εα,␈↓ β6␈ελr␈↓ βF␈εα,␈αwhere␈↓ ∧D␈ελw␈↓ ∧w␈εα=␈↓ ¬%␈ελw␈↓ ¬Q␈εαmod␈↓ ε≠␈ελm␈↓ εH␈εα;␈αthen␈αw␈α␈e␈αcompute
␈ββ\␈↓ ¬=␈ε¬1␈↓ ε:␈ε¬1
␈ββ`␈↓ ∧←␈ε¬1
␈β∧β␈↓ βX␈ε↓␈␈↓ λM␈ε↓↓
␈β∧≤␈↓ ∧C␈ε→0␈↓ ¬v␈ε→0␈↓ λ>␈ε→0␈↓ W␈ε→0
␈β∧"␈↓ β¬␈ελw␈↓ β*␈εα=␈↓ βl␈εα.␈αε.␈αε.␈↓ ∧≤␈εα(␈↓ ∧(␈ελw␈↓ ∧P␈ελm␈↓ ¬/␈εα+␈↓ ¬[␈ελw␈↓ ε.␈εα)␈↓ ε:␈ελm␈↓ π~␈εα+␈↓ πF␈ε⊗↓␈αε↓␈αε↓␈↓ πx␈εα+␈↓ λ$␈ελw␈↓ λ[␈ελm␈↓ ⊂␈εα+␈↓ <␈ελw␈↓ e␈εα.␈↓
p␈εα(27)
␈β∧0␈↓ ∧o␈εr␈↓ ∧|␈ε→␈␈ε¬1␈↓ εY␈εr␈↓ εf␈ε→␈␈ε¬2␈↓ λy␈ε¬1
␈β∧4␈↓ ∧C␈εr␈↓ ¬v␈εr␈↓ εβ␈ε→␈␈ε¬1␈↓ λ>␈ε¬2␈↓ W␈ε¬1
␈β∧v␈↓ ↓H␈εαHere␈↓ α~␈ελc␈↓ αK␈εαis␈α
a␈αn␈α␈um␈α␈ber␈α
such␈αthat␈↓ ¬(␈ελc␈↓ ¬M␈ελm␈↓ ε↓␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ πW␈ελm␈↓ λβ␈εα);␈αthese␈αn␈α␈um␈α␈bers␈↓
∞␈ελc␈↓
>␈εαare␈α
not
␈β¬∧␈↓ α'␈εi␈↓ α3␈εj␈↓ ¬5␈εi␈↓ ¬@␈εj␈↓ ¬l␈εi␈↓ πv␈εj␈↓
≠␈εi␈↓
&␈εj
␈β¬"␈↓ ↓H␈εαgiv␈α␈en,␈αthey␈αm␈α␈ust␈αbe␈αdetermined␈αfrom␈αthe␈↓ ε\␈ελe␈↓ εv␈εα's.
␈β¬-␈↓ π≡␈ε↓␈␈↓ π:␈ε↓↓
␈β¬/␈↓ εi␈εj
␈β¬E␈↓ π,␈εr
␈β¬M␈↓ α␈εαThe␈α∞calculation␈α∞of␈α∞(26)␈α∞for␈α∞all␈↓ ¬t␈ελj␈↓ ε∪␈εαin␈α␈v␈α␈olv␈α␈es␈↓ πV␈εαadditions␈α∞modulo␈↓ v␈ελm␈↓
"␈εα,␈α∞each␈α∞of
␈β¬X␈↓ ¬→␈ε↓␈␈↓ ¬5␈ε↓↓
␈β¬Z␈↓
∃␈εj
␈β¬`␈↓ π,␈ε¬2
␈β¬p␈↓ ¬(␈εr
␈β¬x␈↓ ↓H␈εαwhich␈α
tak␈α␈es␈↓ β ␈ελO␈↓ β#␈εα(␈↓ β/␈ελe␈↓ βI␈εα)␈α
cy␈α␈cles,␈αplus␈↓ ¬N␈εαm␈α␈ultiplications␈α
by␈↓ πs␈ελc␈↓ λ→␈εα,␈α
modulo␈↓ +␈ελm␈↓ W␈εα.␈αThe␈α
calcula-
␈βε¬␈↓ β<␈εr␈↓ λ␈εi␈↓ λ␈εj␈↓ J␈εj
␈βε␈↓ ¬'␈ε¬2
␈βε#␈↓ ↓H␈εαtion␈αof␈↓ α<␈ελw␈↓ αb␈εαby␈αform␈α␈ula␈α(27)␈αin␈α␈v␈α␈olv␈α␈es␈↓ ¬l␈ελr␈↓ ελ␈εαadditions␈αand␈↓ πj␈ελr␈↓ λε␈εαm␈α␈ultiplications␈αby␈↓
/␈ελm␈↓
Z␈εα;␈αit␈αis
␈βε1␈↓
M␈εj
␈βεN␈↓ ↓H␈εαeasy␈αto␈αm␈α␈ultiply␈αby␈↓ ∧π␈ελm␈↓ ∧3␈εα,␈αsince␈αthis␈αis␈αjust␈αadding,␈αshifting,␈αand␈αsubtracting,␈αso␈αit
␈βε\␈↓ ∧%␈εj
␈βεu␈↓ π2␈ε¬2
␈βεz␈↓ ↓H␈εαis␈α
clear␈α
that␈α
the␈α
evaluation␈αof␈α
Eq.␈α
(27)␈α
tak␈α␈es␈↓ ε|␈ελO␈↓ π↔␈εα(␈↓ π#␈ελr␈↓ πA␈ελe␈↓ π[␈εα)␈α
cy␈α␈cles.␈αWe␈α
will␈α
soon␈α
see␈α
that
␈βππ␈↓ πN␈εr
␈βπ%␈↓ ↓H␈εαeach␈α∞of␈α∂the␈α∞m␈α␈ultiplications␈α∂by␈↓ ¬7␈ελc␈↓ ¬]␈εα,␈α∂modulo␈↓ εx␈ελm␈↓ π$␈εα,␈α∂requires␈α∂only␈↓ _␈ελO␈↓ 2␈εα(␈↓ >␈ελe␈↓ ←␈εαlog␈↓
∪␈ελe␈↓
-␈εα)␈α∞cy␈α␈cles,
␈βπ2␈↓ ¬D␈εi␈↓ ¬P␈εj␈↓ π↔␈εj␈↓ K␈εr␈↓
␈εr
␈βπK␈↓ ␈ε¬2
␈βπP␈↓ ↓H␈εαand␈αtherefore␈ε∂␈αthe␈αen␈α␈tire␈αjob␈αof␈αcon␈α␈v␈α␈ersion␈αcan␈αbe␈αdone␈αin␈↓ λS␈ελO␈↓ λm␈εα(␈↓ λy␈ελr␈↓ ↔␈ελe␈↓ 7␈εαlog␈↓ k␈ελe␈↓
ε␈εα)␈ε∂␈αcy␈α␈cles␈εα.
␈βπ]␈↓ $␈εr␈↓ x␈εr
␈βπ{␈↓ α␈εαThe␈αabo␈α␈v␈α␈e␈αobservations␈αleav␈α␈e␈αus␈αwith␈αthe␈αfollo␈α␈wing␈αproblem␈αto␈αsolv␈α␈e:␈αGiv␈α␈en
␈βλ!␈↓ λ:␈εf
␈βλ&␈↓ ↓H␈εαpositiv␈α␈e␈αin␈α␈tegers␈↓ βR␈ελe␈↓ βj␈εα<␈↓ ∧_␈ελf␈↓ ∧6␈εαand␈αa␈αnonnegativ␈α␈e␈αin␈α␈teger␈↓ πZ␈ελu␈↓ πz␈εα<␈↓ λ(␈εα2␈↓ λH␈εα,␈αcompute␈αthe␈αvalue␈αof
␈βλM␈↓ αq␈εf␈↓ πr␈εe␈↓
I␈εf
␈βλR␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓b␈ελu␈↓ ↓w␈εα)␈↓ α ␈εαmod␈↓ αS␈εα(␈↓ α←␈εα2␈↓ β∧␈ε⊗␈␈εα␈α¬1),␈α
where␈↓ ∧D␈ελc␈↓ ∧\␈εαis␈α
the␈α n␈α␈um␈α␈ber␈α
such␈α that␈α
(␈↓ π`␈εα2␈↓ λα␈ε⊗␈␈εα␈α¬1)␈↓ λI␈ελc␈↓ λa␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓
7␈εα2␈↓
\␈ε⊗␈␈εα␈α∧1);
␈βλ⎇␈↓ ↓H␈εαand␈α∂the␈α∂computation␈α∞m␈α␈ust␈α∂be␈α∂done␈α∂in␈↓ ε;␈ελO␈↓ εU␈εα(␈↓ εa␈ελf␈↓ εy␈εαlog␈↓ π-␈ελf␈↓ π>␈εα)␈α∂cy␈α␈cles.␈α∃The␈α∂result␈α∂of␈α∞ex␈α␈ercise
␈β (␈↓ ↓H␈εα4.3.2↑6␈αgiv␈α␈es␈αa␈αform␈α␈ula␈αfor␈↓ ∧t␈ελc␈↓ ¬∞␈εαwhich␈αsuggests␈αa␈αprocedure␈αthat␈αcan␈αbe␈αused.␈αFirst
␈β S␈↓ ↓H␈εαw␈α␈e␈α|nd␈αthe␈αleast␈αpositiv␈α␈e␈αin␈α␈teger␈↓ ¬S␈ελb␈↓ ¬m␈εαsuch␈αthat
␈β
'␈↓ ¬(␈ελb␈↓ ¬7␈ελe␈↓ ¬O␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ π%␈ελf␈↓ π6␈εα).␈↓
p␈εα(28)
␈β
\␈↓ π%␈ε↓␈␈↓ λ∨␈ε↓↓
␈β
v␈↓ λ⊂␈ε¬3
␈β
{␈↓ ↓H␈εαThis␈α
can␈αbe␈αdone␈α
using␈αEuclid's␈αalgorithm␈α
in␈↓ π␈ελO␈↓ π3␈εα(␈↓ π?␈εαlog␈↓ πs␈ελf␈↓ λ∧␈εα)␈↓ λ7␈εαcy␈α␈cles,␈αsince␈αEuclid's␈α
al-
␈β'␈↓ ↓H␈εαgorithm␈α applied␈α to␈↓ βq␈ελe␈↓ ∧λ␈εαand␈↓ ∧K␈ελf␈↓ ∧f␈εαrequires␈↓ ¬i␈ελO␈↓ εβ␈εα(␈↓ ε∂␈εαlog␈↓ εC␈ελf␈↓ εT␈εα)␈α iterations,␈α
and␈α each␈α iteration␈α requires
␈β2␈↓ ↓b␈ε↓␈␈↓ α[␈ε↓↓
␈βM␈↓ αM␈ε¬2
␈βR␈↓ ↓H␈ελO␈↓ ↓p␈εα(␈↓ ↓|␈εαlog␈↓ α0␈ελf␈↓ αA␈εα)␈↓ αv␈εαcy␈α␈cles;␈αalternativ␈α␈ely,␈αw␈α␈e␈α
could␈αbe␈αv␈α␈ery␈α
sloppy␈αhere␈αwithout␈αviolating
␈β⎇␈↓ ↓H␈εαthe␈αtotal␈α
time␈αconstrain␈α␈t,␈α
by␈α
simply␈αtrying␈↓ εy␈ελb␈↓ π∩␈εα=␈α1,␈α
2,␈α
etc.,␈α
un␈α␈til␈α(28)␈α
is␈αsatis|ed,
␈β(␈↓ ↓H␈εαsince␈α
such␈α
a␈α
process␈α
w␈α␈ould␈α∞tak␈α␈e␈↓ ¬K␈ελO␈↓ ¬e␈εα(␈↓ ¬q␈ελf␈↓ ελ␈εαlog␈↓ ε<␈ελf␈↓ εM␈εα)␈α∞cy␈α␈cles␈α
in␈α
all.␈α∂Once␈↓ ↔␈ελb␈↓ 2␈εαhas␈α
been␈α
found,
␈βS␈↓ ↓H␈εαex␈α␈ercise␈α4.3.2↑6␈αtells␈αus␈αthat
␈β
⊃␈↓ ¬s␈ε↓X
␈β
~␈↓ ¬F␈ε↓∩␈↓ εn␈ε↓∪
␈β
.␈↓ εU␈εj␈↓ εc␈εe␈↓ πr␈εf
␈β
4␈↓ ∧_␈ελc␈↓ ∧0␈εα=␈↓ ∧↑␈ελc␈↓ ∧l␈εα[␈↓ ∧v␈ελb␈↓ ¬∧␈εα]␈α
=␈↓ εC␈εα2␈↓ π
␈εαmod␈↓ πT␈εα(␈↓ π`␈εα2␈↓ λλ␈ε⊗␈␈εα␈αλ1).␈↓
p␈εα(29)
␈β
e␈↓ ¬\␈ε¬0␈ε→␈α↓∀␈↓ επ␈εj␈↓ ε∃␈ε¬<␈↓ ε1␈εb
␈β∞>␈↓ π$␈εf
␈β∞C␈↓ α␈εαA␈αbrute-force␈αm␈α␈ultiplication␈αof␈α(␈↓ εε␈ελc␈↓ ε∀␈ελu␈↓ ε*␈εα)␈↓ ε<␈εαmod␈↓ πε␈εα(␈↓ π∩␈εα2␈↓ π9␈ε⊗␈␈εα␈αλ1)␈αw␈α␈ould␈αnot␈αbe␈αgood␈αenough
␈β∞n␈↓ ↓H␈εαto␈αsolv␈α␈e␈αthe␈αproblem,␈α
since␈αw␈α␈e␈αdo␈αnot␈α
kno␈α␈w␈αho␈α␈w␈αto␈αm␈α␈ultiply␈α
general␈↓
ε␈ελf␈↓
↔␈εα-bit␈αn␈α␈um-
␈β∂→␈↓ ↓H␈εαbers␈α∞in␈↓ αA␈ελO␈↓ α\␈εα(␈↓ αh␈ελf␈↓ α␈␈εαlog␈↓ β3␈ελf␈↓ βD␈εα)␈α∞cy␈α␈cles.␈α∩But␈α
the␈α∞special␈α∞form␈α∞of␈↓ πV␈ελc␈↓ πr␈εαpro␈α␈vides␈α∞a␈α∞clue:␈α⊂The␈α
binary
␈β∂E␈↓ ↓H␈εαrepresen␈α␈tation␈αof␈↓ β↑␈ελc␈↓ βy␈εαis␈αcomposed␈α
of␈αbits␈α
in␈α
a␈αregular␈α
pattern,␈α
and␈αEq.␈α
(29)␈αsho␈α␈ws
␈β∂p␈↓ ↓H␈εαthat␈α
the␈α
n␈α␈um␈α␈ber␈↓ βY␈ελc␈↓ βg␈εα[2␈↓ ∧β␈ελb␈↓ ∧⊃␈εα]␈α
can␈α
be␈α
obtained␈α
in␈α
a␈α
simple␈α
way␈α
from␈↓ ⊂␈ελc␈↓ ≡␈εα[␈↓ (␈ελb␈↓ 6␈εα].␈α∂This␈α
suggests
␈β⊂≠␈↓ ↓H␈εαthat␈αw␈α␈e␈αcan␈αrapidly␈αm␈α␈ultiply␈αa␈αn␈α␈um␈α␈ber␈↓ ε4␈ελu␈↓ εU␈εαby␈↓ π ␈ελc␈↓ π↔␈εα[␈↓ π!␈ελb␈↓ π/␈εα]␈αif␈αw␈α␈e␈αbuild␈↓ λu␈ελc␈↓ β␈εα[␈↓
␈ελb␈↓ ≠␈εα]␈↓ %␈ελu␈↓ F␈εαup␈αin␈↓
#␈εαlg␈↓
E␈ελb␈↓
↑␈εαsteps
␈β⊂F␈↓ ↓H␈εαin␈αλa␈αλsuitably␈αλclev␈α␈er␈αλmanner,␈α such␈αλas␈αλthe␈αλfollo␈α␈wing:␈α
Let␈α the␈αλbinary␈αλnotation␈αλfor␈↓
r␈ελb␈↓ λ␈εαbe
␈β⊃~␈↓ ¬.␈ελb␈↓ ¬F␈εα=␈α
(␈↓ ε␈ελb␈↓ ε ␈εα.␈αε.␈αε.␈↓ εP␈ελb␈↓ εk␈ελb␈↓ πε␈ελb␈↓ π"␈εα)␈↓ π<␈εα;
␈β⊃(␈↓ ε
␈εs␈↓ ε]␈ε¬2␈↓ εx␈ε¬1␈↓ π∪␈ε¬0␈↓ π.␈ε¬2
␈β∪(
␈β↓Y␈↓ ↓H␈εα286␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ ↓H␈εαw␈α␈e␈αmay␈αcalculate␈αthe␈αsequences␈↓ ¬C␈ελa␈↓ ¬b␈εα,␈↓ ¬x␈ελd␈↓ ε↔␈εα,␈↓ ε-␈ελu␈↓ εP␈εα,␈↓ εf␈ελv␈↓ π⊃␈εαde|ned␈αby␈αthe␈αrules
␈βα5␈↓ ¬S␈εk␈↓ ε ␈εk␈↓ εB␈εk␈↓ εv␈εk
␈βαo␈↓ β~␈ελa␈↓ βC␈εα=␈↓ βq␈ελe␈↓ β␈␈εα,
␈βαr␈↓ ∧x␈ελa␈↓ ¬!␈εα=␈α
2␈↓ ¬a␈ελa␈↓ ε2␈εαmod␈↓ ε|␈ελf␈↓ π
␈εα;
␈βα|␈↓ β+␈ε¬0
␈ββ␈↓ ¬ ␈εk␈↓ ¬r␈εk␈↓ ε␈ε→␈␈ε¬1
␈ββ%␈↓ β~␈ελd␈↓ βC␈εα=␈↓ βq␈ελb␈↓ ∧␈ελe␈↓ ∧~␈εα,
␈ββ(␈↓ ∧x␈ελd␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελd␈↓ ε.␈εα+␈↓ εZ␈ελb␈↓ εu␈ελa␈↓ π∀␈εα)␈↓ π&␈εαmod␈↓ πp␈ελf␈↓ λα␈εα;
␈ββ2␈↓ β+␈ε¬0␈↓ β}␈ε¬0
␈ββ6␈↓ ¬ ␈εk␈↓ ¬l␈εk␈↓ ¬z␈ε→␈␈ε¬1␈↓ εg␈εk␈↓ πε␈εk
␈ββD␈↓
p␈εα(30)
␈ββX␈↓ εo␈εa␈↓ λt␈εf
␈ββ[␈↓ β⊗␈ελu␈↓ βC␈εα=␈↓ βq␈ελu␈↓ ∧π␈εα,
␈ββ↑␈↓ ∧t␈ελu␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελu␈↓ ε1␈εα+␈↓ ε]␈εα2␈↓ π,␈ελu␈↓ πz␈εα)␈↓ λ␈εαmod␈↓ λV␈εα(␈↓ λb␈εα2␈↓
␈ε⊗␈␈εα␈αλ1);
␈ββa␈↓ ε}␈ε
k␈↓ π
␈ε≠␈␈επ1
␈ββh␈↓ β+␈ε¬0
␈ββl␈↓ ¬ ␈εk␈↓ ¬p␈εk␈↓ ¬}␈ε→␈␈ε¬1␈↓ π@␈εk␈↓ πO␈ε→␈␈ε¬1
␈β∧∞␈↓ πε␈εd␈↓ λ`␈εf
␈β∧⊃␈↓ β≠␈ελv␈↓ βC␈εα=␈↓ βq␈ελb␈↓ ∧␈ελu␈↓ ∧"␈εα,
␈β∧∀␈↓ ∧y␈ελv␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελv␈↓ ε-␈εα+␈↓ εY␈ελb␈↓ εt␈εα2␈↓ πC␈ελu␈↓ πf␈εα)␈↓ πx␈εαmod␈↓ λB␈εα(␈↓ λN␈εα2␈↓ λv␈ε⊗␈␈εα␈αλ1).
␈β∧↔␈↓ π∀␈ε
k␈↓ π!␈ε≠␈␈επ␈α␈1
␈β∧≡␈↓ β+␈ε¬0␈↓ β}␈ε¬0
␈β∧"␈↓ ¬ ␈εk␈↓ ¬k␈εk␈↓ ¬y␈ε→␈␈ε¬1␈↓ εf␈εk␈↓ πW␈εk
␈β∧a␈↓ ↓H␈εαIt␈αis␈αeasy␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αon␈↓ ¬v␈ελk␈↓ ε∪␈εαthat
␈β¬,␈↓ α=␈εk␈↓ εB␈εk␈↓ πo␈εf
␈β¬2␈↓ ↓H␈ελa␈↓ ↓q␈εα=␈α
(␈↓ α+␈εα2␈↓ αK␈ελe␈↓ αZ␈εα)␈↓ αl␈εαmod␈↓ β6␈ελf␈↓ βG␈εα;␈↓ ¬1␈ελu␈↓ ¬↑␈εα=␈α
(␈↓ ε_␈ελc␈↓ ε&␈εα[␈↓ ε0␈εα2␈↓ εV␈εα]␈↓ ε`␈ελu␈↓ εu␈εα)␈↓ ππ␈εαmod␈↓ πQ␈εα(␈↓ π]␈εα2␈↓ λ¬␈ε⊗␈␈εα␈αλ1);
␈β¬=␈↓ α∨␈ε↓␈␈↓ βp␈ε↓↓␈↓ ε␈ε↓␈␈↓ λ↓␈ε↓↓
␈β¬?␈↓ ↓X␈εk␈↓ ¬F␈εk
␈β¬G␈↓
p␈εα(31)
␈β¬W␈↓ λ⎇␈εf
␈β¬]␈↓ ↓H␈ελd␈↓ ↓q␈εα=␈↓ α-␈εα(␈↓ α9␈ελb␈↓ αZ␈εα.␈αε.␈αε.␈↓ β
␈ελb␈↓ β&␈ελb␈↓ βA␈εα)␈↓ βb␈ελe␈↓ ∧∧␈εαmod␈↓ ∧N␈ελf␈↓ ∧←␈εα;␈↓ ¬6␈ελv␈↓ ¬↑␈εα=␈↓ ε~␈ελc␈↓ ε(␈εα[(␈↓ ε>␈ελb␈↓ ε`␈εα.␈αε.␈αε.␈↓ π⊂␈ελb␈↓ π+␈ελb␈↓ πG␈εα)␈↓ πa␈εα]␈↓ πk␈ελu␈↓ λ∃␈εαmod␈↓ λ←␈εα(␈↓ λk␈εα2␈↓ ∪␈ε⊗␈␈εα␈αλ1).
␈β¬j␈↓ ↓X␈εk␈↓ αF␈εk␈↓ β↔␈ε¬1␈↓ β3␈ε¬0␈↓ βM␈ε¬2␈↓ ¬F␈εk␈↓ εK␈εk␈↓ π≥␈ε¬1␈↓ π8␈ε¬0␈↓ πS␈ε¬2
␈βε.␈↓ ε"␈εf
␈βε3␈↓ ↓H␈εαHence␈αthe␈αdesired␈αresult,␈α(␈↓ ∧b␈ελc␈↓ ∧p␈εα[␈↓ ∧z␈ελb␈↓ ¬ ␈εα]␈↓ ¬∪␈ελu␈↓ ¬(␈εα)␈↓ ¬:␈εαmod␈↓ ε∧␈εα(␈↓ ε⊂␈εα2␈↓ ε8␈ε⊗␈␈εα␈απ1),␈αis␈↓ π:␈ελv␈↓ πW␈εα.␈αThe␈αcalculation␈αof␈↓
∃␈ελa␈↓
5␈εα,␈↓
J␈ελd␈↓
j␈εα,␈↓
␈␈ελu␈↓ "␈εα,
␈βε@␈↓ πJ␈εs␈↓
&␈εk␈↓
[␈εk␈↓ ∀␈εk
␈βε↑␈↓ ↓H␈ελv␈↓ ↓r␈εαfrom␈↓ αH␈ελa␈↓ β∩␈εα,␈↓ β(␈ελd␈↓ βs␈εα,␈↓ ∧ ␈ελu␈↓ ∧W␈εα,␈↓ ∧m␈ελv␈↓ ¬C␈εαtak␈α␈es␈↓ ε ␈ελO␈↓ ε:␈εα(␈↓ εF␈εαlog␈↓ εz␈ελf␈↓ π␈εα)␈αλ+␈↓ πK␈ελO␈↓ πe␈εα(␈↓ πq␈εαlog␈↓ λ%␈ελf␈↓ λ6␈εα)␈αλ+␈↓ λv␈ελO␈↓ ⊂␈εα(␈↓ ≤␈ελf␈↓ .␈εα)␈αλ+␈↓ n␈ελO␈↓
λ␈εα(␈↓
∀␈ελf␈↓
%␈εα)␈α
=␈↓
i␈ελO␈↓ β␈εα(␈↓ ∂␈ελf␈↓ ␈εα)
␈βεk␈↓ ↓W␈εk␈↓ αY␈εk␈↓ αg␈ε→␈␈ε¬1␈↓ β9␈εk␈↓ βH␈ε→␈␈ε¬1␈↓ ∧≥␈εk␈↓ ∧,␈ε→␈␈ε¬1␈↓ ∧⎇␈εk␈↓ ¬␈ε→␈␈ε¬␈α␈1
␈βπ ␈↓ ↓H␈εαcy␈α␈cles,␈α⊂and␈α∂therefore␈α∂the␈α∂en␈α␈tire␈α⊂calculation␈α∂can␈α∂be␈α∂done␈α∂in␈↓ β␈ελs␈↓ _␈ελO␈↓ 2␈εα(␈↓ >␈ελf␈↓ O␈εα)␈α∂=␈↓
≡␈ελO␈↓
8␈εα(␈↓
D␈ελf␈↓
[␈εαlog␈↓ ∂␈ελf␈↓ ␈εα)
␈βπ4␈↓ ↓H␈εαcy␈α␈cles␈αas␈αdesired.
␈βπ←␈↓ α␈εαThe␈α
reader␈α will␈α
|nd␈α it␈α instructiv␈α␈e␈α
to␈α study␈α
the␈α ingenious␈α
method␈α represen␈α␈ted
␈βλ␈↓ ↓H␈εαby␈α
(30)␈α
and␈α
(31)␈αv␈α␈ery␈α
carefully.␈αSimilar␈α
techniques␈αare␈α
discussed␈α
in␈α
Section␈α
4.6.3.
␈βλ6␈↓ α␈εαSch␈↓ αD␈εα∪␈↓ αD␈εαo␈↓ αV␈εαnhage's␈α paper␈α [␈ε∂Computing␈ε∩␈α 1␈εα␈α (1966),␈α 182↑196]␈α sho␈α␈ws␈α that␈α these␈α ideas␈αλcan
␈βλ←␈↓ h␈∧λ← hαA
␈βλ`␈↓ D␈ε⊗p
␈βλg␈↓ h␈ε¬2␈↓ |␈ε¬lg␈↓
↔␈εn
␈βλm␈↓ ↓H␈εαbe␈α
extended␈α∞to␈α∞the␈α∞m␈α␈ultiplication␈α∞of␈↓ ε↔␈ελn␈↓ ε-␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∞using␈↓ λe␈ελr␈↓ ↓␈ε⊗→␈↓ 2␈εα2␈↓
6␈εαmoduli,
␈β →␈↓ ↓H␈εαobtaining␈α
a␈αmethod␈α
analogous␈αto␈αAlgorithm␈α
C.␈αWe␈α
shall␈αnot␈αdw␈α␈ell␈α
on␈αthe␈α
details
␈β D␈↓ ↓H␈εαhere,␈α since␈α
Algorithm␈α C␈α is␈α
always␈α superior;␈α
in␈α fact,␈α
an␈α ev␈α␈en␈α
better␈α method␈α is␈α next
␈β o␈↓ ↓H␈εαon␈αour␈αagenda.
␈β
.␈↓ ↓H␈ε∩C.␈α
Use␈αof␈αFourier␈αtransforms.␈εα␈α⊗The␈αcritical␈αproblem␈αin␈αhigh-precision␈α
m␈α␈ultiplica-
␈β
Y␈↓ ↓H␈εαtion␈αis␈αthe␈αdetermination␈αof␈α\con␈α␈v␈α␈olution␈αproducts"␈αsuch␈αas
␈β+␈↓ ∧\␈ελu␈↓ ∧}␈ελv␈↓ ¬$␈εα+␈↓ ¬P␈ελu␈↓ ε≥␈ελv␈↓ εD␈εα+␈↓ εp␈ε⊗↓␈αε↓␈αε↓␈↓ π"␈εα+␈↓ πN␈ελu␈↓ πq␈ελv␈↓ λ∞␈εα,
␈β8␈↓ ∧q␈εr␈↓ ¬∞␈ε¬0␈↓ ¬e␈εr␈↓ ¬r␈ε→␈␈ε¬1␈↓ ε-␈ε¬1␈↓ πb␈ε¬0␈↓ λ␈εr
␈β⎇␈↓ ↓H␈εαand␈αthere␈αis␈αan␈αin␈α␈timate␈αrelation␈α
bet␈α␈w␈α␈een␈αcon␈α␈v␈α␈olutions␈αand␈α|nite␈αFourier␈αtrans-
␈β(␈↓ ↓H␈εαforms.␈α⊃If␈↓ α`␈ελ|␈↓ β∧␈εα=␈↓ β5␈εαexp␈↓ βm␈εα(2␈↓ ∧␈ελ→␈↓ ∧∨␈ελi␈↓ ∧-␈εα/␈↓ ∧?␈ελK␈↓ ∧]␈εα)␈α∞is␈α
a␈↓ ¬<␈ελK␈↓ ¬Z␈εαth␈α∞root␈α
of␈α∞unity,␈α∞the␈α∞one-dimensional␈α
Fourier
␈βS␈↓ ↓H␈εαtransform␈αof␈α(␈↓ β$␈ελu␈↓ βG␈εα,␈↓ βW␈ελu␈↓ βz␈εα,␈↓ ∧
␈εα.␈αε.␈αε.␈↓ ∧:␈εα,␈↓ ∧J␈ελu␈↓ ¬!␈εα)␈αmay␈αbe␈αde|ned␈αto␈αbe␈α(␈↓ λ≥␈ελu␈↓ λ∨␈εα∂␈↓ λA␈εα,␈↓ λQ␈ελu␈↓ λS␈εα∂␈↓ λu␈εα,␈↓ ¬␈εα.␈αε.␈αε.␈↓ 5␈εα,␈↓ E␈ελu␈↓ G␈εα∂␈↓
→␈εα),␈αwhere
␈βa␈↓ β8␈ε¬0␈↓ βk␈ε¬1␈↓ ∧↑␈εK␈↓ ∧v␈ε→␈␈ε¬1␈↓ λ3␈ε¬0␈↓ λg␈ε¬1␈↓ V␈εK␈↓ n␈ε→␈␈ε¬1
␈β
α␈↓ ¬≠␈ε↓X
␈β
∨␈↓ επ␈εs␈↓ ε∀␈εt
␈β
&␈↓ ∧&␈ελu␈↓ ∧(␈εα∂␈↓ ∧R␈εα=␈↓ ¬p␈ελ|␈↓ ε≡␈ελu␈↓ ε=␈εα,␈↓ π∃0␈ε⊗␈α
∀␈↓ π←␈ελs␈↓ πx␈εα<␈↓ λ&␈ελK␈↓ λD␈εα.␈↓
p␈εα(32)
␈β
3␈↓ ∧;␈εs␈↓ ε3␈εt
␈β
W␈↓ ¬␈ε¬0␈ε→∀␈↓ ¬+␈εt␈↓ ¬6␈ε¬<␈↓ ¬R␈εK
␈β∞⊗␈↓ ↓H␈εαLetting␈α(␈↓ αT␈εα∂␈↓ αT␈ελv␈↓ αu␈εα,␈↓ β¬␈εα∂␈↓ β¬␈ελv␈↓ β&␈εα,␈↓ β6␈εα.␈αε.␈αε.␈↓ βf␈εα,␈↓ βv␈εα∂␈↓ βv␈ελv␈↓ ∧L␈εα)␈αbe␈αde|ned␈αin␈αthe␈αsame␈αway,␈αas␈αthe␈αFourier␈αtransform
␈β∞$␈↓ αf␈ε¬0␈↓ β_␈ε¬1␈↓ ∧ ␈εK␈↓ ∧!␈ε→␈␈ε¬1
␈β∞A␈↓ ↓H␈εαof␈α
(␈↓ ↓␈␈ελv␈↓ α≡␈εα,␈↓ α.␈ελv␈↓ αL␈εα,␈↓ α\␈εα.␈αε.␈αε.␈↓ β␈εα,␈↓ β≤␈ελv␈↓ βo␈εα),␈α∞it␈α∞is␈α
not␈α∞di}cult␈α∞to␈α∞see␈α
that␈α∞(␈↓ πk␈ελu␈↓ πm␈εα∂␈↓ λ∂␈ελv␈↓ λ⊂␈εα∂␈↓ λ0␈εα,␈↓ λ@␈ελu␈↓ λB␈εα∂␈↓ λd␈ελv␈↓ λe␈εα∂␈↓ ε␈εα,␈↓ ⊗␈εα.␈αε.␈αε.␈↓ F␈εα,␈↓ V␈ελu␈↓ W␈εα∂␈↓
*␈εα∂␈↓
*␈ελv␈↓
{␈εα)␈α
is
␈β∞O␈↓ α∂␈ε¬0␈↓ α=␈ε¬1␈↓ β,␈εK␈↓ βC␈ε→␈␈ε¬1␈↓ λ↓␈ε¬0␈↓ λ"␈ε¬0␈↓ λV␈ε¬1␈↓ λw␈ε¬1␈↓ f␈εK␈↓ }␈ε→␈␈ε¬1␈↓
8␈εK␈↓
O␈ε→␈␈ε¬1
␈β∞m␈↓ ↓H␈εαthe␈αtransform␈αof␈α(␈↓ βb␈ελw␈↓ ∧λ␈εα,␈↓ ∧_␈ελw␈↓ ∧>␈εα,␈↓ ∧N␈εα.␈αε.␈αε.␈↓ ∧}␈εα,␈↓ ¬∞␈ελw␈↓ ¬i␈εα),␈αwhere
␈β∞z␈↓ βy␈ε¬0␈↓ ∧0␈ε¬1␈↓ ¬&␈εK␈↓ ¬>␈ε→␈␈ε¬1
␈β∂9␈↓ α0␈ελw␈↓ α←␈εα=␈↓ β
␈ελu␈↓ β/␈ελv␈↓ βU␈εα+␈↓ ∧↓␈ελu␈↓ ∧N␈ελv␈↓ ∧t␈εα+␈↓ ¬ ␈ε⊗↓␈αε↓␈αε↓␈↓ ¬R␈εα+␈↓ ¬}␈ελu␈↓ ε!␈ελv␈↓ εF␈εα+␈↓ εr␈ελu␈↓ πJ␈ελv␈↓ λ~␈εα+␈↓ λF␈ε⊗↓␈αε↓␈αε↓␈↓ λx␈εα+␈↓ $␈ελu␈↓ q␈ελv
␈β∂F␈↓ αH␈εr␈↓ β!␈εr␈↓ β?␈ε¬0␈↓ ∧⊗␈εr␈↓ ∧#␈ε→␈␈ε¬1␈↓ ∧↑␈ε¬1␈↓ ε∪␈ε¬0␈↓ ε1␈εr␈↓ ππ␈εK␈↓ π∨␈ε→␈␈ε¬1␈↓ πZ␈εr␈↓ πg␈ε¬+1␈↓ 9␈εr␈↓ F␈ε¬+1␈↓
↓␈εK␈↓
→␈ε→␈␈ε¬1
␈β∂←␈↓ βk␈ε↓X
␈β⊂α␈↓ α←␈εα=␈↓ ¬∧␈ελu␈↓ ¬$␈ελv␈↓ ¬A␈εα.
␈β⊂⊂␈↓ ¬→␈εi␈↓ ¬4␈εj
␈β⊂4␈↓ β
␈εi␈↓ β_␈ε¬+␈↓ β5␈εj␈↓ βB␈ε→⊃␈↓ β←␈εr␈↓ βm␈ε¬(␈α␈mo␈α↓dulo␈↓ ∧]␈εK␈↓ ∧t␈ε¬)
␈β⊂q␈↓ ↓H␈εαWhen␈↓ α3␈ελK␈↓ α←␈ε⊗∃␈εα␈α∂2␈↓ β$␈ελn␈↓ βD␈ε⊗␈␈εα␈α
1␈α∂and␈↓ ∧\␈ελu␈↓ ¬⊃␈εα=␈↓ ¬D␈ελu␈↓ ε%␈εα=␈↓ εX␈ε⊗↓␈αε↓␈αε↓␈↓ π⊃␈εα=␈↓ πD␈ελu␈↓ λ*␈εα=␈↓ λ]␈ελv␈↓ ∞␈εα=␈↓ A␈ελv␈↓
≥␈εα=␈↓
P␈ε⊗↓␈αε↓␈αε↓␈↓ λ␈εα=
␈β⊂}␈↓ ∧p␈εn␈↓ ¬Y␈εn␈↓ ¬k␈ε¬+1␈↓ πX␈εK␈↓ πp␈ε→␈␈ε¬1␈↓ λm␈εn␈↓ Q␈εn␈↓ b␈ε¬+1
␈β⊃≤␈↓ ↓H␈ελv␈↓ α(␈εα=␈α∞0,␈α∂the␈↓ βE␈ελw␈↓ β`␈εα's␈α∞are␈α∞just␈α∞what␈α∞w␈α␈e␈α∞need␈α∂for␈α∞m␈α␈ultiplication;␈ε∂␈α∂the␈α∞transform␈α∞of
␈β⊃)␈↓ ↓W␈εK␈↓ ↓o␈ε→␈␈ε¬1
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα287
␈βα(␈↓ ↓H␈ε∂a␈α∂con␈α␈v␈α␈olution␈α∞product␈α∂is␈α∂the␈α∂ordinary␈α∂product␈α∂of␈α∂the␈α∂transforms.␈εα␈α∃This␈α∂idea␈α∞is
␈βα4␈↓ λ∃␈ε↓␈␈↓ ∩␈ε↓↓
␈βαS␈↓ ↓H␈εαactually␈α
a␈α
special␈α
case␈α
of␈α∞Toom's␈α
use␈α
of␈α
polynomials␈↓ λ#␈εαcf.␈α
(10)␈↓ ␈εα,␈α
with␈↓
␈ελx␈↓
*␈εαreplaced
␈βα}␈↓ ↓H␈εαby␈αroots␈αof␈αunity.
␈ββ*␈↓ α␈εαThe␈α
abo␈α␈v␈α␈e␈α
property␈α
of␈α∞Fourier␈α
transforms␈α
was␈α
exploited␈α
by␈α
V.␈α
Strassen␈α
in
␈ββU␈↓ ↓H␈εα1968,␈α
using␈α
a␈α
su}cien␈α␈tly␈α
precise␈α
binary␈α
represen␈α␈tation␈α
of␈α
the␈α
complex␈α n␈α␈um␈α␈ber␈↓ ␈ελ|␈↓ "␈εα,
␈β∧↓␈↓ ↓H␈εαto␈α
m␈α␈ultiply␈α
large␈α∞n␈α␈um␈α␈bers␈α
faster␈α
than␈α∞was␈α
possible␈α
under␈α∞all␈α
previously␈α
kno␈α␈wn
␈β∧,␈↓ ↓H␈εαschemes.␈α↔In␈α∂1970,␈α⊃he␈α⊂and␈α∂A.␈α⊂Sch␈↓ ¬b␈εα∪␈↓ ¬b␈εαo␈↓ ¬t␈εαnhage␈α∂found␈α⊂an␈α⊂elegan␈α␈t␈α∂way␈α⊂to␈α⊂modify␈α∂the
␈β∧W␈↓ ↓H␈εαmethod,␈α
av␈α␈oiding␈α all␈α
the␈α complications␈α
of␈α complex␈α
n␈α␈um␈α␈bers␈α and␈α obtaining␈α
a␈α v␈α␈ery
␈β¬α␈↓ ↓H␈εαpretty␈α
algorithm␈αcapable␈α
of␈αm␈α␈ultiplying␈α
t␈α␈w␈α␈o␈↓ πα␈ελn␈↓ π_␈εα-bit␈α
n␈α␈um␈α␈bers␈αin␈↓ ⊃␈ελO␈↓ +␈εα(␈↓ 7␈ελn␈↓ S␈εαlog␈↓
π␈ελn␈↓
#␈εαlog␈↓
W␈εαlog␈↓ ␈ελn␈↓ ␈εα)
␈β¬-␈↓ ↓H␈εαsteps.␈α∂We␈α
shall␈α
no␈α␈w␈α
study␈α
their␈α
remarkable␈α
approach␈α
[cf.␈ε∂␈α
Computing␈ε∩␈α
7␈εα␈α
(1971),
␈β¬Y␈↓ ↓H␈εα281↑292].
␈β¬␈␈↓ λ∀␈εn
␈βε∧␈↓ α␈εαIt␈αis␈α
con␈α␈v␈α␈enien␈α␈t␈α
in␈αthe␈α
|rst␈αplace␈α
to␈αreplace␈↓ π/␈ελn␈↓ πO␈εαby␈↓ λα␈εα2␈↓ λ&␈εα,␈αand␈α
to␈αseek␈α
a␈α
procedure
␈βε+␈↓ βJ␈εn␈↓ ε
␈εn
␈βε0␈↓ ↓H␈εαthat␈α
m␈α␈ultiplies␈↓ β8␈εα2␈↓ β\␈εα-bit␈α
n␈α␈um␈α␈bers␈αin␈↓ ¬U␈ελO␈↓ ¬o␈εα(␈↓ ¬{␈εα2␈↓ ε%␈ελn␈↓ εA␈εαlog␈↓ εu␈ελn␈↓ π␈εα)␈α
steps.␈αRoughly␈α
speaking,␈αw␈α␈e␈α
shall
␈βεV␈↓ ¬w␈εn
␈βε[␈↓ ↓H␈εαreduce␈α
the␈α
problem␈α
of␈α
m␈α␈ultiplying␈↓ ¬e␈εα2␈↓ ε ␈εα-bit␈α
n␈α␈um␈α␈bers␈αto␈α
the␈α
problem␈α
of␈α
doing␈α
about
␈βπ↓␈↓ ↓Z␈εn␈↓ ↓l␈ε¬/2␈↓ ∧A␈εn␈↓ ∧S␈ε¬/␈α↓2␈↓ πT␈εn
␈βπε␈↓ ↓H␈εα2␈↓ α∪␈εαm␈α␈ultiplications␈αof␈↓ ∧/␈εα2␈↓ ∧p␈εα-bit␈αn␈α␈um␈α␈bers,␈αwith␈↓ π≤␈ελO␈↓ π6␈εα(␈↓ πB␈εα2␈↓ πf␈ελn␈↓ π|␈εα)␈αauxiliary␈α
steps␈αrequired␈α
to
␈βπ1␈↓ ↓H␈εαpiece␈αthese␈αproducts␈αtogether␈αproperly;␈αthen␈αthere␈αwill␈αbe␈↓ λS␈εαlg␈↓ λu␈ελn␈↓ ∃␈εαlev␈α␈els␈αof␈αrecursion
␈βπW␈↓ αR␈εn␈↓ π\␈εn
␈βπ\␈↓ ↓H␈εαwith␈↓ α~␈ελO␈↓ α4␈εα(␈↓ α@␈εα2␈↓ αd␈ελn␈↓ αy␈εα)␈αsteps␈αper␈αlev␈α␈el,␈αmaking␈αa␈αtotal␈αof␈↓ π$␈ελO␈↓ π>␈εα(␈↓ πJ␈εα2␈↓ πt␈ελn␈↓ λ⊂␈εαlog␈↓ λD␈ελn␈↓ λZ␈εα)␈αsteps␈αas␈αdesired.
␈βλλ␈↓ α␈εαIt␈αwill␈α
be␈αinstructiv␈α␈e␈α
to␈αpresen␈α␈t␈αthe␈α
construction␈αin␈α
t␈α␈w␈α␈o␈αsteps:␈α
|rst␈αw␈α␈e␈αshall
␈βλ3␈↓ ↓H␈εαstudy␈α
a␈α
procedure␈α
that␈α
in␈α␈v␈α␈olv␈α␈es␈α
most␈α
of␈αthe␈α
importan␈α␈t␈α
ideas␈α
but␈α
doesn't␈α
giv␈α␈e␈α
the
␈βλ←␈↓ ↓H␈εαdesired␈αe}ciency,␈αthen␈αw␈α␈e␈αshall␈α|x␈αup␈αthe␈αe}ciency.
␈β ¬␈↓ β8␈εn
␈β
␈↓ α␈εαLet␈↓ αL␈ελN␈↓ αx␈εα=␈↓ β&␈εα2␈↓ βT␈εαand␈αsuppose␈α
w␈α␈e␈α
wish␈αto␈α
compute␈α
the␈αproduct␈α
of␈↓ E␈ελu␈↓ e␈εαand␈↓
)␈ελv␈↓
<␈εα,␈α
where
␈β 1␈↓ β(␈εN
␈β 6␈↓ ↓H␈εα0␈ε⊗␈α∂∀␈↓ α≠␈ελu␈↓ α1␈εα,␈↓ αA␈ελv␈↓ αc␈εα<␈↓ β⊗␈εα2␈↓ βB␈εα.␈α∃As␈α∂in␈α∂Algorithm␈α∂C␈α∂w␈α␈e␈α∂shall␈α∂break␈α∂these␈↓ λt␈ελN␈↓ ⊗␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∂in␈α␈to
␈β a␈↓ ↓H␈εαgroups;␈αlet
␈β
λ␈↓ π≡␈εk␈↓ λg␈εl
␈β
∞␈↓ β{␈ελk␈↓ ∧∃␈εα+␈↓ ∧A␈ελl␈↓ ∧U␈εα=␈↓ ¬β␈ελn␈↓ ¬!␈εα+␈αλ1,␈↓ ε7␈ελK␈↓ ε↑␈εα=␈↓ π␈εα2␈↓ π-␈εα,␈↓ λ¬␈ελL␈↓ λ'␈εα=␈↓ λU␈εα2␈↓ λo␈εα,␈↓
p␈εα(33)
␈β
T␈↓ ↓H␈εαand␈αwrite
␈β,␈↓ β↔␈ελu␈↓ β7␈εα=␈α
(␈↓ βq␈ελU␈↓ ∧i␈εα.␈αε.␈αε.␈↓ ¬→␈ελU␈↓ ¬>␈ελU␈↓ ¬d␈εα)␈↓ ε∂␈εα,␈↓ εg␈ελv␈↓ π∧␈εα=␈α
(␈↓ π>␈ελV␈↓ λ3␈εα.␈αε.␈αε.␈↓ λc␈ελV␈↓ ¬␈ελV␈↓ (␈εα)␈↓ S␈εα,
␈β9␈↓ ¬}␈ε
L␈↓ B␈ε
L
␈β:␈↓ ∧λ␈εK␈↓ ∧≠␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1␈↓ ¬0␈ε¬1␈↓ ¬U␈ε¬0␈↓ πR␈εK␈↓ πe␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1␈↓ λw␈ε¬1␈↓ →␈ε¬0
␈β;␈↓ ¬p␈ε¬2␈↓ 4␈ε¬2
␈β␈␈↓ ∧/␈εk␈↓ ∧=␈ε→␈␈ε¬1␈↓ ε&␈εl
␈β¬␈↓ ↓H␈εαregarding␈↓ αh␈ελu␈↓ β
␈εαand␈↓ βQ␈ελv␈↓ βp␈εαas␈↓ ∧≥␈εα2␈↓ ∧u␈εαgroups␈α
of␈↓ ε∀␈εα2␈↓ ε.␈εα-bit␈α
n␈α␈um␈α␈bers.␈α∞We␈αwill␈α
select␈αappropriate
␈β0␈↓ ↓H␈εαvalues␈αfor␈↓ αn␈ελk␈↓ β␈εαand␈↓ βQ␈ελl␈↓ βh␈εαlater;␈αit␈αturns␈αout␈α(see␈αex␈α␈ercise␈α10)␈αthat␈αw␈α␈e␈αwill␈αneed␈αto␈αhav␈α␈e
␈β
λ␈↓ ¬A␈ελk␈↓ ¬]␈ε⊗∀␈↓ ε␈ελl␈↓ ε≥␈εα+␈αλ3␈ε⊗␈α
∀␈↓ π∪␈ελn␈↓ π)␈εα,␈↓
p␈εα(34)
␈β
`␈↓ ↓H␈εαbut␈απno␈απother␈απconditions.␈α
The␈απabo␈α␈v␈α␈e␈απrepresen␈α␈tation␈απof␈↓ πp␈ελu␈↓ λ
␈εαand␈↓ λN␈ελv␈↓ λg␈εαimplies␈απas␈απbefore␈απthat
␈β∞2␈↓ ¬T␈ε¬(␈↓ ¬↑␈εK␈↓ ¬v␈ε→␈␈ε¬2)␈↓ ε+␈εL␈↓ λ∂␈εL
␈β∞8␈↓ βg␈ελu␈↓ ∧∧␈ε⊗↓␈↓ ∧⊗␈ελv␈↓ ∧3␈εα=␈↓ ∧a␈ελW␈↓ ¬B␈εα2␈↓ εG␈εα+␈↓ εs␈ε⊗↓␈αε↓␈αε↓␈↓ π%␈εα+␈↓ πQ␈ελW␈↓ π⎇␈εα2␈↓ λ+␈εα+␈↓ λW␈ελW␈↓ β␈εα,␈↓
p␈εα(35)
␈β∞F␈↓ ∧␈␈εK␈↓ ¬↔␈ε→␈␈ε¬2␈↓ πo␈ε¬1␈↓ λu␈ε¬0
␈β∂⊃␈↓ ↓H␈εαwhere
␈β∂≠␈↓ ∧n␈ε↓X␈↓ π→␈ε↓X
␈β∂>␈↓ βu␈ελW␈↓ ∧+␈εα=␈↓ ¬>␈ελU␈↓ ¬a␈ελV␈↓ ε␈εα=␈↓ λ1␈ελU␈↓ λT␈ελV␈↓ λu␈εα,␈↓
p␈εα(36)
␈β∂K␈↓ ∧∪␈εr␈↓ ¬U␈εi␈↓ ¬u␈εj␈↓ λH␈εi␈↓ λh␈εj
␈β∂o␈↓ ∧Y␈εi␈↓ ∧d␈ε¬+␈↓ ¬↓␈εj␈↓ ¬∞␈ε¬=␈↓ ¬+␈εr␈↓ ε:␈εi␈↓ εE␈ε¬+␈↓ εb␈εj␈↓ εo␈ε→⊃␈↓ π␈εr␈↓ π~␈ε¬(␈α␈mo␈α↓dulo␈↓ λ
␈εK␈↓ λ"␈ε¬)
␈β⊂;␈↓
ε␈εL␈↓
n␈ε¬2
␈β⊂@␈↓ ↓H␈εαif␈α
w␈α␈e␈α
de|ne␈↓ β
␈ελU␈↓ β9␈εα=␈↓ βi␈ελV␈↓ ∧⊗␈εα=␈α0␈α
for␈↓ ¬≡␈ελi␈↓ ¬,␈εα,␈↓ ¬<␈ελj␈↓ ¬Y␈ε⊗∃␈↓ ε ␈ελK␈↓ ε ␈εα/2.␈α⊂Clearly␈α
0␈ε⊗␈α∀␈↓ λ-␈ελW␈↓ λe␈ε⊗∀␈εα␈α(␈↓ !␈ελK␈↓ 8␈εα/2)(␈↓ t␈εα2␈↓
#␈ε⊗␈␈εα␈α 1␈↓
b␈εα)␈↓ λ␈εα<
␈β⊂N␈↓ β!␈εi␈↓ β⎇␈εj␈↓ λK␈εr
␈β⊂f␈↓ ↓Z␈ε¬2␈↓ ↓h␈εL␈↓ ↓|␈ε¬+␈↓ α→␈εk␈↓ α'␈ε→␈␈ε¬1
␈β⊂k␈↓ ↓H␈εα2␈↓ αS␈εα;␈α
therefore␈α
if␈αw␈α␈e␈α
knew␈α
the␈↓ ¬i␈ελW␈↓ ε
␈εα's,␈α
w␈α␈e␈α
could␈αcompute␈↓ λ[␈ελu␈↓ λv␈ε⊗↓␈↓ ¬␈ελv␈↓ "␈εαby␈α
adding␈α
up␈α
the
␈β⊂w␈↓ βl␈ε↓␈␈↓ ¬∨␈ε↓↓
␈β⊃↔␈↓ ↓H␈εαterms␈αin␈α(35),␈αin␈↓ βR␈ελO␈↓ βz␈ελK␈↓ ∧_␈εα(2␈↓ ∧6␈ελL␈↓ ∧V␈εα+␈↓ ¬α␈ελk␈↓ ¬∪␈εα)␈↓ ¬7␈εα=␈↓ ¬e␈ελO␈↓ ε␈εα(␈↓ ε␈ελN␈↓ ε-␈εα)␈αfurther␈αsteps.
␈β∪(
␈β↓Y␈↓ ↓H␈εα288␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ α␈εαOur␈α∞goal␈α∞is␈α∞to␈α∞compute␈α∞the␈↓ ¬N␈ελW␈↓ επ␈εαexactly;␈α∂and␈α∞w␈α␈e␈α∞can␈α∞do␈α∞this␈α∞by␈α
computing
␈βα5␈↓ ¬l␈εr
␈βαN␈↓ 9␈εL␈↓
≡␈ε¬2
␈βαS␈↓ ↓H␈εαtheir␈αvalue␈αmod␈↓ βM␈ελM␈↓ βs␈εα,␈αwhere␈↓ ∧q␈ελM␈↓ ¬"␈εαis␈αan␈α␈y␈αn␈α␈um␈α␈ber␈αlarger␈αthan␈α(␈↓ λS␈ελK␈↓ λk␈εα/2)(␈↓ '␈εα2␈↓ T␈ε⊗␈␈εα␈αλ1␈↓
∩␈εα)␈↓
-␈εα.␈αOne␈αof
␈βαy␈↓ εb␈ε¬4␈↓ εq␈εL
␈βα}␈↓ ↓H␈εαthe␈α
k␈α␈ey␈αideas␈αis␈α
that␈αw␈α␈e␈α
can␈αchoose␈↓ ¬s␈ελM␈↓ ε"␈εα=␈↓ εP␈εα2␈↓ π␈εα+␈αε1,␈αand␈αcompute␈α
the␈↓ n␈ελW␈↓
$␈εαby␈α
doing
␈ββ␈↓
␈εr
␈ββ*␈↓ ↓H␈εαa␈α\fast␈αFourier␈α
transform"␈αmodulo␈↓ ¬w␈ελM␈↓ ε≥␈εα,␈αwhere␈α
the␈↓ πZ␈ελK␈↓ πx␈εαth␈αroot␈α
of␈αunity␈↓ ⎇␈ελ|␈↓
!␈εαw␈α␈e␈αuse␈αis
␈ββU␈↓ ↓H␈εαa␈αpo␈α␈w␈α␈er␈αof␈α2␈α(so␈αthat␈αm␈α␈ultiplication␈αby␈αpo␈α␈w␈α␈ers␈αof␈↓ πW␈ελ|␈↓ πz␈εαis␈αv␈α␈ery␈αsimple).
␈β∧␈↓ α␈εαBefore␈α
discussing␈α
this␈α
idea␈α
in␈α
detail,␈αa␈α
n␈α␈umerical␈α
example␈α
of␈α
what␈α
w␈α␈e'v␈α␈e␈α
said
␈β∧+␈↓ ↓H␈εαso␈α
far␈α
may␈α
help␈α
to␈αclarify␈α
things.␈αSuppose␈α
that␈αw␈α␈e␈α
wan␈α␈t␈α
to␈α
m␈α␈ultiply␈α
t␈α␈w␈α␈o␈α
4096-bit
␈β∧V␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αλobtaining␈αλan␈αλ8192-bit␈αλproduct;␈α th␈α␈us␈↓ πλ␈ελn␈↓ π(␈εα=␈α
12␈αλin␈αλthe␈αλabo␈α␈v␈α␈e␈αλdiscussion,␈αλand
␈β¬α␈↓ ↓H␈εαw␈α␈e␈α
may␈α
choose␈↓ β:␈ελk␈↓ βU␈εα=␈α
8,␈↓ ∧*␈ελl␈↓ ∧>␈εα=␈α
5.␈αThe␈α
bits␈α
of␈↓ εI␈ελu␈↓ εi␈εαand␈↓ π-␈ελv␈↓ πJ␈εαare␈α
partitioned␈αin␈α␈to␈α
128␈α
groups
␈β¬-␈↓ ↓H␈εαof␈α
32␈α
bits␈α∞each,␈α
and␈α∞the␈α
basic␈α∞idea␈α
is␈α
to␈α∞|nd␈α
the␈α
256␈α∞con␈α␈v␈α␈olution␈α
products␈α
(36)
␈β¬X␈↓ ↓H␈εαand␈α
to␈αadd␈α
them␈αtogether␈α(after␈α
appropriate␈αshifting).␈αThe␈αcon␈α␈v␈α␈olution␈α
products
␈βεβ␈↓ ↓H␈εαhav␈α␈e␈α∂at␈α⊂most␈α⊂64␈α
+␈α7␈α⊂=␈α⊃71␈α∂bits␈α⊂each,␈α⊃so␈α⊂it␈α∂surely␈α⊂su}ces␈α⊂to␈α⊂determine␈α∂them
␈βε)␈↓ βA␈ε¬1␈α↓28
␈βε.␈↓ ↓H␈εαmodulo␈↓ αJ␈ελM␈↓ α}␈εα=␈↓ β/␈εα2␈↓ βv␈εα+␈α
1.␈α∪We␈α∞will␈α∂see␈α∞that␈α∞it␈α∂is␈α∞possible␈α∞to␈α∂|nd␈α∞the␈α∞con␈α␈v␈α␈olution
␈βεZ␈↓ ↓H␈εαproducts␈α
rapidly␈αby␈α
|rst␈α
computing␈αtheir␈α
|nite␈αFourier␈α
transform␈αmod␈↓
␈ελM␈↓
F␈εα,␈α
using
␈βπ¬␈↓ ↓H␈εαthe␈α∞in␈α␈teger␈↓ β↓␈ελ|␈↓ β&␈εα=␈α∂2␈α∞as␈α∞a␈α∂256th␈α∞\root␈α∂of␈α∞unity."␈α∪These␈α∂in␈α␈teger␈α∞calculations␈α∞mod
␈βπ0␈↓ ↓H␈ελM␈↓ ↓x␈εαturn␈αout␈αto␈αhav␈α␈e␈αall␈αthe␈αnecessary␈αproperties␈αof␈αcomplex␈αroots␈αof␈αunity␈αin␈αthe
␈βπ[␈↓ ↓H␈εαordinary␈αFourier␈αtransform␈α(32).
␈βλ↓␈↓ ∧5␈εm
␈βλε␈↓ α␈εαArithmetic␈α∂mod␈α∞(␈↓ ∧#␈εα2␈↓ ∧Y␈εα+␈α
1)␈α∞is␈α∂somewhat␈α∂similar␈α∞to␈α∂ones'␈α∂complemen␈α␈t␈α∞arith-
␈βλ-␈↓ β"␈εm
␈βλ2␈↓ ↓H␈εαmetic,␈αmod␈α(␈↓ β⊂␈εα2␈↓ βD␈ε⊗␈␈εα␈αλ1),␈αalthough␈αit␈α
is␈αsligh␈α␈tly␈αmore␈αcomplicated;␈αw␈α␈e␈αhav␈α␈e␈αalready
␈βλ]␈↓ ↓H␈εαin␈α␈v␈α␈estigated␈α
the␈α∞idea␈α
brie⎇y␈α∞in␈α∞Section␈α
3.2.1.1.␈α⊃Num␈α␈bers␈α∞can␈α
be␈α∞represen␈α␈ted␈α
as
␈β β␈↓
#␈εm
␈β λ␈↓ ↓H␈ελm␈↓ ↓g␈εα-bit␈α quan␈α␈tities␈α in␈α binary␈α notation,␈α ex␈α␈cept␈α for␈α the␈α special␈α value␈ε⊗␈α ␈␈εα1␈ε⊗␈α
⊃␈↓
⊃␈εα2␈↓
=␈εα,␈α which
␈β .␈↓ λG␈εm
␈β 3␈↓ ↓H␈εαmay␈α
be␈α represen␈α␈ted␈α
in␈α
some␈α
special␈α
way.␈αAddition␈α
mod␈α
(␈↓ λ5␈εα2␈↓ λf␈εα+␈α¬1)␈α
is␈α
easily␈α
done␈α in
␈β ↑␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελm␈↓ α
␈εα)␈α
cy␈α␈cles,␈α
since␈α
a␈αcarry␈α
o{␈α
the␈α
left␈αend␈α
merely␈α
means␈αthat␈α
w␈α␈e␈α
m␈α␈ust␈αsubtract
␈β
¬␈↓ εr␈εm
␈β
␈↓ ↓H␈εα1␈α
at␈αthe␈αrigh␈α␈t;␈αsimilarly,␈αsubtraction␈αmod␈α
(␈↓ ε`␈εα2␈↓ π∩␈εα+␈απ1)␈α
is␈αquite␈αsimple.␈αFurthermore,
␈β
0␈↓ ∧⊗␈εr
␈β
5␈↓ ↓H␈εαw␈α␈e␈αcan␈αm␈α␈ultiply␈αby␈↓ ∧∧␈εα2␈↓ ∧/␈εαin␈↓ ∧Y␈ελO␈↓ ∧s␈εα(␈↓ ∧␈␈ελm␈↓ ¬∨␈εα)␈αcy␈α␈cles,␈αwhen␈α0␈ε⊗␈α
∀␈↓ πP␈ελr␈↓ πj␈εα<␈↓ λ_␈ελm␈↓ λ7␈εα,␈αsince
␈β
|␈↓ ↓Z␈εr
␈ββ␈↓ ↓H␈εα2␈↓ ↓o␈ε⊗↓␈εα␈αλ(␈↓ α
␈ελu␈↓ αm␈εα.␈αε.␈αε.␈↓ β≥␈ελu␈↓ β@␈ελu␈↓ βc␈εα)␈↓ ∧π␈ε⊗⊃␈εα␈α
(␈↓ ∧A␈ελu␈↓ ¬K␈εα.␈αε.␈αε.␈↓ ¬{␈ελu␈↓ ε$␈εα0␈↓ ε<␈εα.␈αε.␈αε.␈↓ εl␈εα0␈↓ ε}␈εα)␈↓ π ␈ε⊗␈␈εα␈αλ(0␈↓ πp␈εα.␈αε.␈αε.␈↓ λ ␈εα0␈↓ λ8␈ελu␈↓ _␈εα.␈αε.␈αε.␈↓ H␈ελu␈↓
␈εα)␈↓
;␈εα.␈↓
p␈εα(37)
␈β⊂␈↓ α"␈εm␈↓ α;␈ε→␈␈ε¬1␈↓ β1␈ε¬1␈↓ βT␈ε¬0␈↓ βo␈ε¬2␈↓ ∧V␈εm␈↓ ∧o␈ε→␈␈↓ ¬␈εr␈↓ ¬~␈ε→␈␈ε¬␈α␈1␈↓ ε∂␈ε¬0␈↓ π
␈ε¬2␈↓ λM␈εm␈↓ λg␈ε→␈␈ε¬␈α␈1␈↓ \␈εm␈↓ v␈ε→␈␈↓
∪␈εr␈↓
,␈ε¬2
␈βK␈↓ ¬>␈εk
␈βP␈↓ α␈εαGiv␈α␈en␈α
a␈α
sequence␈αof␈↓ ∧T␈ελK␈↓ ∧⎇␈εα=␈↓ ¬,␈εα2␈↓ ¬Z␈εαin␈α␈tegers␈α(␈↓ εk␈ελa␈↓ π␈εα,␈↓ π≠␈εα.␈αε.␈αε.␈↓ πK␈εα,␈↓ π[␈ελa␈↓ λ/␈εα),␈αand␈α
an␈α
in␈α␈teger␈↓
C␈ελ|␈↓
f␈εαsuch
␈β↑␈↓ ε|␈ε¬0␈↓ πk␈εK␈↓ λβ␈ε→␈␈ε¬1
␈βv␈↓ α-␈εK
␈β{␈↓ ↓H␈εαthat␈↓ α⊗␈ελ|␈↓ αO␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ ∧%␈ελM␈↓ ∧J␈εα),␈αthe␈αin␈α␈teger␈αFourier␈αtransform
␈β;␈↓ ∧`␈ε↓X
␈βD␈↓ ∧/␈ε↓∩␈↓ ¬␈␈ε↓∪
␈βY␈↓ ¬L␈εs␈↓ ¬Y␈εt
␈β←␈↓ βY␈εα∂␈↓ βY␈ελa␈↓ ∧↓␈εα=␈↓ ¬5␈ελ|␈↓ ¬c␈ελa␈↓ ε≠␈εαmod␈↓ εe␈ελM␈↓ π
␈εα,␈↓ πb0␈ε⊗␈α
∀␈↓ λ,␈ελs␈↓ λE␈εα<␈↓ λs␈ελK␈↓ ⊃␈εα,␈↓
p␈εα(38)
␈βl␈↓ βk␈εs␈↓ ¬t␈εt
␈β
⊂␈↓ ∧E␈ε¬0␈ε→∀␈↓ ∧p␈εt␈↓ ∧{␈ε¬<␈↓ ¬_␈εK
␈β
K␈↓ ↓H␈εαcan␈αbe␈αcalculated␈αrapidly␈αas␈αfollo␈α␈ws.␈α(In␈αthese␈αform␈α␈ulas␈αthe␈↓ λl␈ελs␈↓ ⊃␈εαand␈↓ V␈ελt␈↓ z␈εαare␈αeither␈α0
␈β
X␈↓ λx␈εj␈↓ a␈εj
␈β
q␈↓ ¬o␈εk
␈β
v␈↓ ↓H␈εαor␈α1,␈αso␈αthat␈αeach␈αstep␈αrepresen␈α␈ts␈↓ ¬]␈εα2␈↓ ε ␈εαcomputations.)
␈β∞%␈↓ β)␈ε¬[0]
␈β∞*␈↓ ↓H␈εαStep␈α0.␈α→Let␈↓ β⊃␈ελA␈↓ βG␈εα(␈↓ βS␈ελt␈↓ ∧_␈εα,␈↓ ∧(␈εα.␈αε.␈αε.␈↓ ∧X␈εα,␈↓ ∧h␈ελt␈↓ ¬↓␈εα)␈α
=␈↓ ¬E␈ελa␈↓ ¬`␈εα,␈αwhere␈↓ ε↑␈ελt␈↓ εu␈εα=␈α
(␈↓ π/␈ελt␈↓ πz␈εα.␈αε.␈αε.␈↓ λ*␈ελt␈↓ λC␈εα)␈↓ λ]␈εα.
␈β∞8␈↓ β↑␈εk␈↓ βm␈ε→␈␈ε¬␈α␈1␈↓ ∧s␈ε¬0␈↓ ¬V␈εt␈↓ π:␈εk␈↓ πI␈ε→␈␈ε¬␈α␈1␈↓ λ5␈ε¬0␈↓ λO␈ε¬2
␈β∞Y␈↓ β%␈ε¬[1]
␈β∞↑␈↓ ↓H␈εαStep␈α1.␈α→Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈ελt␈↓ ∧i␈εα,␈↓ ∧y␈εα.␈αε.␈αε.␈↓ ¬)␈εα,␈↓ ¬9␈ελt␈↓ ¬S␈εα)␈ε⊗␈α
␈β∞l␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬1␈↓ ∧0␈εk␈↓ ∧>␈ε→␈␈ε¬2␈↓ ¬D␈ε¬0
␈β∞q␈↓ βd␈ε↓␈␈↓
∨␈ε↓↓
␈β∂␈↓ ∧
␈ε¬[0]␈↓ ε[␈ε¬(␈↓ εd␈εs␈↓ π≥␈ε¬0␈↓ π+␈ε¬...␈↓ πC␈ε¬0␈↓ πR␈ε¬)␈↓ λ→␈ε¬[0]
␈β∂⊃␈↓ βr␈ελA␈↓ ∧(␈εα(0,␈↓ ∧V␈ελt␈↓ ¬≠␈εα,␈↓ ¬+␈εα.␈αε.␈αε.␈↓ ¬[␈εα,␈↓ ¬k␈ελt␈↓ ε∧␈εα)␈αλ+␈↓ εD␈ελ|␈↓ πo␈ε⊗↓␈↓ λ↓␈ελA␈↓ λ7␈εα(1,␈↓ λe␈ελt␈↓ *␈εα,␈↓ :␈εα.␈αε.␈αε.␈↓ j␈εα,␈↓ z␈ελt␈↓
∪␈εα)␈↓
3␈εαmod␈↓
⎇␈ελM␈↓ "␈εα.
␈β∂∀␈↓ εo␈ε
k␈↓ ε{␈ε≠␈␈επ1␈↓ π[␈επ2
␈β∂≡␈↓ ∧a␈εk␈↓ ∧o␈ε→␈␈ε¬2␈↓ ¬u␈ε¬0␈↓ λp␈εk␈↓ λ}␈ε→␈␈ε¬2␈↓
∧␈ε¬0
␈β∂E␈↓ β%␈ε¬[2]
␈β∂J␈↓ ↓H␈εαStep␈α2.␈α→Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈ελs␈↓ ∧k␈εα,␈↓ ∧{␈ελt␈↓ ¬?␈εα,␈↓ ¬O␈εα.␈αε.␈αε.␈↓ ¬␈␈εα,␈↓ ε∂␈ελt␈↓ ε(␈εα)␈ε⊗␈α
␈β∂W␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬1␈↓ ∧1␈εk␈↓ ∧@␈ε→␈␈ε¬␈α␈2␈↓ ¬¬␈εk␈↓ ¬∀␈ε→␈␈ε¬3␈↓ ε~␈ε¬0
␈β∂]␈↓ α␈ε↓␈␈↓
∨␈ε↓↓
␈β∂w␈↓ α&␈ε¬[1]␈↓ ¬L␈ε¬(␈↓ ¬V␈εs␈↓ ε∂␈εs␈↓ εG␈ε¬0␈↓ εV␈ε¬...␈↓ εn␈ε¬0␈↓ ε|␈ε¬)␈↓ πC␈ε¬[1]
␈β∂|␈↓ α∞␈ελA␈↓ αD␈εα(␈↓ αP␈ελs␈↓ β⊗␈εα,␈αε0,␈↓ βH␈ελt␈↓ ∧␈εα,␈↓ ∧≤␈εα.␈αε.␈αε.␈↓ ∧L␈εα,␈↓ ∧\␈ελt␈↓ ∧u␈εα)␈αλ+␈↓ ¬5␈ελ|␈↓ π→␈ε⊗↓␈↓ π+␈ελA␈↓ πa␈εα(␈↓ πm␈ελs␈↓ λ3␈εα,␈αε1,␈↓ λe␈ελt␈↓ *␈εα,␈↓ :␈εα.␈αε.␈αε.␈↓ j␈εα,␈↓ z␈ελt␈↓
∪␈εα)␈↓
3␈εαmod␈↓
⎇␈ελM␈↓ "␈εα.
␈β⊂␈↓ ¬`␈ε
k␈↓ ¬m␈ε≠␈␈επ␈α␈2␈↓ ε→␈ε
k␈↓ ε&␈ε≠␈␈επ␈α␈1␈↓ πε␈επ2
␈β⊂
␈↓ α\␈εk␈↓ αj␈ε→␈␈ε¬1␈↓ βR␈εk␈↓ βa␈ε→␈␈ε¬3␈↓ ∧g␈ε¬0␈↓ πy␈εk␈↓ λλ␈ε→␈␈ε¬1␈↓ λp␈εk␈↓ λ}␈ε→␈␈ε¬3␈↓
∧␈ε¬0
␈β⊂0␈↓ α␈εα.␈αε.␈αε.
␈β⊂←␈↓ β%␈ε¬[␈↓ β-␈εk␈↓ β;␈ε¬]
␈β⊂d␈↓ ↓H␈εαStep␈↓ α~␈ελk␈↓ α+␈εα.␈α~Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈εα.␈αε.␈αε.␈↓ ∧U␈εα,␈↓ ∧e␈ελs␈↓ ∧␈␈εα,␈↓ ¬∂␈ελs␈↓ ¬*␈εα)␈ε⊗␈α
␈β⊂r␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬␈α␈1␈↓ ∧q␈ε¬1␈↓ ¬≠␈ε¬0
␈β⊂w␈↓ αz␈ε↓␈␈↓
∨␈ε↓↓
␈β⊃∩␈↓ β ␈ε¬[␈↓ β(␈εk␈↓ β6␈ε→␈␈ε¬1]␈↓ ε∨␈ε¬(␈↓ ε(␈εs␈↓ ε>␈εs␈↓ εS␈ε¬...␈↓ εk␈εs␈↓ π$␈ε¬)␈↓ πk␈ε¬[␈↓ πs␈εk␈↓ λ↓␈ε→␈␈ε¬1␈α↓]
␈β⊃↔␈↓ βλ␈ελA␈↓ βi␈εα(␈↓ βu␈ελs␈↓ ∧;␈εα,␈↓ ∧K␈εα.␈αε.␈αε.␈↓ ∧{␈εα,␈↓ ¬␈ελs␈↓ ¬&␈εα,␈αε0)␈αλ+␈↓ ελ␈ελ|␈↓ πA␈ε⊗↓␈↓ πS␈ελA␈↓ λ5␈εα(␈↓ λA␈ελs␈↓ ε␈εα,␈↓ ⊗␈εα.␈αε.␈αε.␈↓ F␈εα,␈↓ V␈ελs␈↓ q␈εα,␈αε1)␈↓
3␈εαmod␈↓
⎇␈ελM␈↓ "␈εα.
␈β⊃~␈↓ ε3␈επ0␈↓ εH␈επ1␈↓ εv␈ε
k␈↓ πα␈ε≠␈␈επ1␈↓ π.␈επ2
␈β⊃$␈↓ ∧↓␈εk␈↓ ∧⊂␈ε→␈␈ε¬1␈↓ ¬↔␈ε¬1␈↓ λM␈εk␈↓ λ[␈ε→␈␈ε¬1␈↓ b␈ε¬1
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα289
␈βα(␈↓ ↓H␈εαIt␈αis␈αnot␈αdi}cult␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat␈αw␈α␈e␈αhav␈α␈e
␈βαg␈↓ α∧␈ε¬[␈↓ α␈εj␈↓ α→␈ε¬]
␈βαm␈↓ ↓l␈ελA␈↓ α!␈εα(␈↓ α-␈ελs␈↓ αs␈εα,␈↓ ββ␈εα.␈αε.␈αε.␈↓ β3␈εα,␈↓ βC␈ελs␈↓ ∧π␈εα,␈↓ ∧↔␈ελt␈↓ ¬ε␈εα,␈↓ ¬⊗␈εα.␈αε.␈αε.␈↓ ¬F␈εα,␈↓ ¬V␈ελt␈↓ ¬o␈εα)
␈βαz␈↓ α9␈εk␈↓ αG␈ε→␈␈ε¬1␈↓ βO␈εk␈↓ β]␈ε→␈␈↓ βz␈εj␈↓ ∧"␈εk␈↓ ∧0␈ε→␈␈↓ ∧M␈εj␈↓ ∧Z␈ε→␈␈ε¬1␈↓ ¬`␈ε¬0
␈ββ∪␈↓ ¬6␈ε↓X
␈ββ0␈↓ εd␈ε¬(␈↓ εn␈εs␈↓ π∧␈εs␈↓ π→␈ε¬...␈↓ π1␈εs␈↓ πj␈ε¬)␈↓ π␈␈ε→↓␈ε¬(␈↓ λ⊂␈εt␈↓ λH␈ε¬...␈↓ λ`␈εt␈↓ _␈ε¬0␈↓ &␈ε¬...␈↓ >␈ε¬0␈↓ M␈ε¬)
␈ββ6␈↓ ∧,␈εα=␈↓ εM␈ελ|␈↓ g␈ελa␈↓
∂␈εαmod␈↓
Y␈ελM␈↓
}␈εα,
␈ββ9␈↓ εx␈επ0␈↓ π∞␈επ1␈↓ π<␈ε
k␈↓ πH␈ε≠␈␈επ1␈↓ πt␈επ2␈↓ λ~␈ε
k␈↓ λ&␈ε≠␈␈επ1␈↓ λi␈ε
k␈↓ λv␈ε≠␈␈↓ ␈ε
j␈↓ V␈επ2
␈ββD␈↓ x␈εt
␈ββh␈↓ ∧Z␈ε¬0␈ε→∀␈↓ ¬¬␈εt␈↓ ¬<␈ε¬,␈↓ ¬D␈ε¬...␈↓ ¬\␈ε¬,␈↓ ¬d␈εt␈↓ ε≤␈ε→∀␈ε¬1
␈ββp␈↓ ¬∞␈ε
k␈↓ ¬≠␈ε≠␈␈επ␈α␈1␈↓ ¬n␈ε
k␈↓ ¬z␈ε≠␈␈↓ ε⊃␈ε
j
␈β∧
␈↓ ↓H␈εαso␈αthat
␈β∧2␈↓ β≡␈ε¬[␈↓ β&␈εk␈↓ β5␈ε¬]
␈β∧8␈↓ βε␈ελA␈↓ β=␈εα(␈↓ βI␈ελs␈↓ ∧∂␈εα,␈↓ ∧∨␈εα.␈αε.␈αε.␈↓ ∧O␈εα,␈↓ ∧←␈ελs␈↓ ∧y␈εα,␈↓ ¬ ␈ελs␈↓ ¬#␈εα)␈α
=␈↓ ¬g␈εα∂␈↓ ¬g␈ελa␈↓ εε␈εα,␈↓ ε↑␈εαwhere␈↓ πF␈ελs␈↓ π←␈εα=␈α
(␈↓ λ→␈ελs␈↓ λ3␈ελs␈↓ λT␈εα.␈αε.␈αε.␈↓ ∧␈ελs␈↓ I␈εα)␈↓ d␈εα.
␈β∧E␈↓ βU␈εk␈↓ βc␈ε→␈␈ε¬1␈↓ ∧k␈ε¬1␈↓ ¬∃␈ε¬0␈↓ ¬y␈εs␈↓ λ%␈ε¬0␈↓ λ?␈ε¬1␈↓ ⊂␈εk␈↓ ≡␈ε→␈␈ε¬1␈↓ U␈ε¬2
␈β∧t␈↓ ↓H␈εα(Note␈α⊂the␈α⊃rev␈α␈ersed␈α⊃order␈α⊃of␈α⊃the␈α⊃binary␈α⊃digits␈α⊂in␈↓ πf␈ελs␈↓ πu␈εα.␈α≠For␈α⊃further␈α⊃discussion␈α⊂of
␈β¬ ␈↓ ↓H␈εαtransforms␈αsuch␈αas␈αthis,␈αsee␈αSection␈α4.6.4.)
␈β¬K␈↓ α␈εαNo␈α␈w␈αw␈α␈e␈αhav␈α␈e␈αenough␈αmachinery␈α
at␈αour␈αdisposal␈αto␈αdo␈αthe␈αcalculation␈αof␈αall
␈β¬q␈↓ ¬∞␈ε¬8␈↓ ¬≤␈εL␈↓ ¬0␈ε¬/␈↓ ¬?␈εK␈↓ πλ␈εK␈↓ πt␈ε¬8␈↓ λα␈εL
␈β¬v␈↓ ↓H␈ελW␈↓ αα␈εαas␈α∂promised.␈α∃Let␈↓ ∧#␈ελ|␈↓ ∧I␈εα=␈↓ ∧|␈εα2␈↓ ¬W␈εα,␈α⊂so␈α∂that␈↓ εq␈ελ|␈↓ π/␈εα=␈↓ πb␈εα2␈↓ λ%␈ε⊗⊃␈εα␈α∂1␈α∂(modulo␈↓
¬␈ελM␈↓
+␈εα),␈α∂where
␈βεβ␈↓ ↓f␈εr
␈βε≤␈↓ α7␈ε¬4␈↓ αF␈εL
␈βε!␈↓ ↓H␈ελM␈↓ ↓w␈εα=␈↓ α%␈εα2␈↓ α↑␈εα+␈α∧1.␈αThe␈α in␈α␈teger␈α fast␈α Fourier␈α transform␈α algorithm␈α abo␈α␈v␈α␈e␈αλcan␈α be␈α applied
␈βεC␈↓ I␈εα∂␈↓
@␈εα∂
␈βεL␈↓ ↓H␈εαto␈α
(␈↓ ↓}␈ελU␈↓ α#␈εα,␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈εα,␈↓ αs␈ελU␈↓ βM␈εα),␈αwhere␈↓ ∧T␈ελU␈↓ ¬%␈εαthrough␈↓ ε,␈ελU␈↓ π⊂␈εαare␈α
zero,␈αto␈α
obtain␈α
(␈↓ C␈ελU␈↓ j␈εα,␈↓ z␈εα.␈αε.␈αε.␈↓
*␈εα,␈↓
:␈ελU␈↓ ⊗␈εα);
␈βεZ␈↓ α∃␈ε¬0␈↓ β
␈εK␈↓ β"␈ε→␈␈ε¬1␈↓ εC␈εK␈↓ ε[␈ε→␈␈ε¬␈α␈1␈↓ \␈ε¬0␈↓
S␈εK␈↓
k␈ε→␈␈ε¬1
␈βε[␈↓ ∧k␈εK␈↓ ∧}␈ε¬/␈α↓2
␈βεs␈↓ ¬~␈εk␈↓
π␈εe
␈βεx␈↓ ↓H␈εαeach␈α
of␈α
the␈↓ β¬␈ελk␈↓ β#␈εαsteps␈α
in␈α␈v␈α␈olv␈α␈es␈↓ ¬λ␈εα2␈↓ ¬6␈εαcomputations␈α
of␈α
the␈α
form␈↓ λX␈ελc␈↓ λr␈εα=␈α(␈↓ -␈ελa␈↓ H␈εα+␈↓ u␈εα2␈↓
∩␈ελb␈↓
!␈εα)␈↓
3␈εαmod␈↓
⎇␈ελM␈↓ "␈εα,
␈βπ~␈↓ .␈εα∂␈↓
"␈εα∂
␈βπ≡␈↓ ∧x␈εk
␈βπ#␈↓ ↓H␈εαso␈αthe␈αrunning␈αtime␈αis␈↓ ∧.␈ελO␈↓ ∧H␈εα(␈↓ ∧T␈ελk␈↓ ∧f␈εα2␈↓ ¬π␈ελL␈↓ ¬∨␈εα)␈α
=␈↓ ¬c␈ελO␈↓ ¬⎇␈εα(␈↓ ε ␈ελk␈↓ ε≠␈ελN␈↓ ε=␈εα).␈αSimilarly␈αw␈α␈e␈αobtain␈α(␈↓ *␈ελV␈↓ N␈εα,␈↓ ↑␈εα.␈αε.␈αε.␈↓
∞␈εα,␈↓
≡␈ελV␈↓
v␈εα)␈αin
␈βπ0␈↓ @␈ε¬0␈↓
3␈εK␈↓
K␈ε→␈␈ε¬1
␈βπN␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελk␈↓ α␈ελN␈↓ α!␈εα)␈αcy␈α␈cles.␈αThe␈αnext␈αstep␈αis␈αto␈αcompute
␈βλ
␈↓ ¬L␈εα∂␈↓ ¬r␈εα∂␈↓ ε'␈εα∂␈↓ εL␈εα∂␈↓ πB␈εα∂␈↓ λ≤␈εα∂
␈βλ∪␈↓ αx␈εα(␈↓ β∧␈ελa␈↓ β#␈εα,␈↓ β3␈ελa␈↓ βS␈εα,␈↓ βc␈εα.␈αε.␈αε.␈↓ ∧∪␈εα,␈↓ ∧#␈ελa␈↓ ∧v␈εα)␈α
=␈α
(␈↓ ¬F␈ελU␈↓ ¬n␈ελV␈↓ ε⊃␈εα,␈↓ ε!␈ελU␈↓ εH␈ελV␈↓ εl␈εα,␈↓ ε|␈εα.␈αε.␈αε.␈↓ π,␈εα,␈↓ π<␈ελU␈↓ λ_␈ελV␈↓ λp␈εα)␈↓ α␈εαmod␈↓ L␈ελM␈↓ r␈εα,
␈βλ ␈↓ β∃␈ε¬0␈↓ βD␈ε¬1␈↓ ∧3␈εK␈↓ ∧K␈ε→␈␈ε¬1␈↓ ¬←␈ε¬0␈↓ εβ␈ε¬0␈↓ ε:␈ε¬1␈↓ ε↑␈ε¬1␈↓ πU␈εK␈↓ πm␈ε→␈␈ε¬1␈↓ λ-␈εK␈↓ λE␈ε→␈␈ε¬1
␈βλX␈↓ ↓H␈εαusing␈α a␈α
high-speed␈α m␈α␈ultiplication␈α
procedure␈α for␈α
each␈α of␈α
these␈α products,␈α
obtaining
␈β β␈↓ ↓H␈εαthe␈α⊂results␈α⊃mod␈↓ βU␈ελM␈↓ ∧␈εαby␈α⊂subtracting␈α⊃the␈α⊂most␈α⊃signi|can␈α␈t␈α⊃halv␈α␈es␈α⊂from␈α⊃the␈α⊂least
␈β .␈↓ ↓H␈εαsigni|can␈α␈t␈αλhalv␈α␈es.␈α
If␈αλw␈α␈e␈αλno␈α␈w␈αλuse␈αλthe␈αλfast␈αλFourier␈αλtransform␈αλa␈αλthird␈αλtime,␈αλobtaining
␈β Y␈↓ ↓H␈εα(␈↓ ↓T␈εα∂␈↓ ↓T␈ελa␈↓ ↓t␈εα,␈↓ α∧␈εα∂␈↓ α∧␈ελa␈↓ α$␈εα,␈↓ α4␈εα.␈αε.␈αε.␈↓ αd␈εα,␈↓ αt␈εα∂␈↓ αt␈ελa␈↓ βI␈εα),␈α
this␈α
is␈α
enough␈α
to␈α determine␈α
(␈↓ π$␈ελW␈↓ πP␈εα,␈↓ π`␈ελW␈↓ λ
␈εα,␈↓ λ≥␈εα.␈αε.␈αε.␈↓ λM␈εα,␈↓ λ]␈ελW␈↓ >␈εα)␈α
without␈α m␈α␈uch
␈β g␈↓ ↓f␈ε¬0␈↓ α⊗␈ε¬1␈↓ βε␈εK␈↓ β≡␈ε→␈␈ε¬1␈↓ πB␈ε¬0␈↓ π}␈ε¬1␈↓ λ{␈εK␈↓ ∪␈ε→␈␈ε¬1
␈β
∧␈↓ ↓H␈εαmore␈αw␈α␈ork,␈αsince␈αw␈α␈e␈αshall␈αpro␈α␈v␈α␈e␈αthat
␈β
C␈↓ ¬%␈εk
␈β
I␈↓ ∧<␈εα∂␈↓ ∧<␈ελa␈↓ ∧e␈ε⊗⊃␈↓ ¬∪␈εα2␈↓ ¬3␈ελW␈↓ εq␈εα(modulo␈↓ π⎇␈ελM␈↓ λ"␈εα).␈↓
p␈εα(39)
␈β
W␈↓ ∧N␈εr␈↓ ¬Q␈ε¬(␈ε→␈␈↓ ¬x␈εr␈↓ ε¬␈ε¬)␈↓ ε∀␈ε¬mod␈↓ εO␈εK
␈β∞␈↓ ↓H␈εαThis␈απcongruence␈αεmeans␈απthat␈απan␈απappropriate␈απshifting␈απoperation,␈αλnamely␈απto␈αεm␈α␈ultiply
␈β4␈↓ βe␈ε¬4␈↓ βs␈εL␈↓ ∧π␈ε→␈␈↓ ∧$␈εk
␈β9␈↓ ↓H␈ε⊗␈␈↓ ↓l␈εα∂␈↓ ↓l␈ελa␈↓ β∨␈εαby␈↓ βS␈εα2␈↓ ∧9␈εαmod␈↓ ¬β␈ελM␈↓ ¬4␈εαas␈αin␈α(37),␈α|nally␈αyields␈↓ λ0␈ελW␈↓ λ[␈εα.
␈βG␈↓ ↓}␈ε¬(␈ε→␈α␈␈␈↓ α$␈εr␈↓ α1␈ε¬)␈↓ α@␈ε¬mod␈↓ α{␈εK␈↓ λN␈εr
␈βd␈↓ α␈εαAll␈α∂this␈α⊂may␈α∂seem␈α⊂lik␈α␈e␈α∂magic,␈α⊂but␈α⊂it␈α∂w␈α␈orks;␈α⊃a␈α⊂careful␈α∂study␈α⊂of␈α∂the␈α∂abo␈α␈v␈α␈e
␈β⊂␈↓ ↓H␈εαremarks␈αλwill␈απsho␈α␈w␈αλthat␈αλthe␈αλmethod␈αλis␈αλv␈α␈ery␈αλclev␈α␈er␈απbut␈αλnot␈αλa␈αλcomplete␈αλm␈α␈ystery.␈α
The
␈β6␈↓ π5␈εK␈↓ πH␈ε¬/2
␈β;␈↓ ↓H␈εαproof␈αof␈α
(39)␈α
relies␈αprimarily␈α
on␈α
the␈αfact␈α
that␈↓ π≡␈ελ|␈↓ πp␈ε⊗⊃␈α␈␈εα1␈α(modulo␈↓ l␈ελM␈↓
∩␈εα),␈αbecause
␈βf␈↓ ↓H␈εαthis␈αfact␈αcan␈αbe␈αused␈αto␈αpro␈α␈v␈α␈e␈αthat
␈β
≠␈↓ ∧,␈ε↓X
␈β
$␈↓ ¬g␈ε↓~␈↓ ¬⎇␈ελK␈↓ ε≠␈εα,␈↓ εm␈εαif␈↓ π∂␈ελs␈↓ π$␈εαmod␈↓ πn␈ελK␈↓ λ⊗␈εα=␈α
0;
␈β
8␈↓ ¬_␈εs␈↓ ¬$␈εt
␈β
>␈↓ ¬↓␈ελ|␈↓ ¬9␈εα=␈↓
p␈εα(40)
␈β
W␈↓ ¬⎇␈εα0,␈↓ εm␈εαif␈↓ π∂␈ελs␈↓ π$␈εαmod␈↓ πn␈ελK␈↓ λ⊗␈ε⊗≤␈εα␈α
0.
␈β
p␈↓ ∧⊂␈ε¬0␈ε→␈α↓∀␈↓ ∧<␈εt␈↓ ∧F␈ε¬<␈↓ ∧c␈εK
␈β∞≥␈↓ ε5␈εp
␈β∞"␈↓ ↓H␈εαFor␈αλwhen␈↓ αc␈ελs␈↓ αx␈εαmod␈↓ βB␈ελK␈↓ βj␈ε⊗≤␈εα␈α
0,␈α
let␈↓ ∧n␈ελs␈↓ ¬β␈εαmod␈↓ ¬M␈ελK␈↓ ¬u␈εα=␈↓ ε#␈εα2␈↓ εE␈ελq␈↓ ε]␈εαwhere␈↓ πB␈ελq␈↓ π[␈εαis␈α odd␈α and␈αλ0␈ε⊗␈α
∀␈↓ K␈ελp␈↓ h␈εα<␈↓
⊗␈ελk␈↓
(␈εα.␈α
Setting
␈β∞H␈↓ α+␈εk␈↓ α9␈ε→␈␈ε¬1␈ε→␈α↓␈␈↓ β↓␈εp␈↓ ∧E␈εs␈↓ ∧R␈εT␈↓ ¬5␈εq␈↓ ¬C␈εK␈↓ ¬V␈ε¬/2␈↓ πp␈εs␈↓ π⎇␈ε¬(␈↓ λε␈εt␈↓ λ⊃␈ε¬+␈↓ λ-␈εT␈↓ λB␈ε¬)␈↓ >␈εs␈↓ K␈εt
␈β∞M␈↓ ↓H␈ελT␈↓ ↓k␈εα=␈↓ α→␈εα2␈↓ β⊃␈εα,␈αw␈α␈e␈αhav␈α␈e␈↓ ∧.␈ελ|␈↓ ∧p␈ε⊗⊃␈↓ ¬≡␈ελ|␈↓ ¬|␈ε⊗⊃␈α
␈␈εα1;␈αhence␈↓ πY␈ελ|␈↓ λU␈ε⊗⊃␈α
␈␈↓ '␈ελ|␈↓ U␈εα,␈αand␈αterms␈↓ ∪␈ελT
␈β∞x␈↓ ↓H␈εαsteps␈αapart␈αin␈αthe␈αsum␈α(40)␈αcancel␈αin␈αpairs.␈αFrom␈α(40)␈αw␈α␈e␈αdeduce␈α(39)␈αas␈αfollo␈α␈ws:
␈β∂≥␈↓ β.␈ε↓X␈↓ ¬o␈ε↓X
␈β∂8␈↓ ∧6␈εα∂␈↓ ∧X␈εα∂
␈β∂:␈↓ ∧~␈εs␈↓ ∧&␈εt␈↓ εp␈εs␈↓ ε|␈εt␈↓ π$␈εt␈↓ π.␈εi␈↓ π⎇␈εt␈↓ λλ␈εj
␈β∂A␈↓ α(␈εα∂␈↓ α(␈ελa␈↓ αZ␈ε⊗⊃␈↓ ∧β␈ελ|␈↓ ∧1␈ελU␈↓ ∧T␈ελV␈↓ ¬λ␈ε⊗⊃␈↓ εY␈ελ|␈↓ π
␈ελ|␈↓ π:␈ελU␈↓ πf␈ελ|␈↓ λ∃␈ελV
␈β∂N␈↓ α:␈εs␈↓ ∧J␈εt␈↓ ∧i␈εt␈↓ πQ␈εi␈↓ λ)␈εj
␈β∂r␈↓ β∩␈ε¬0␈ε→␈α↓∀␈↓ β>␈εt␈↓ βH␈ε¬<␈↓ βe␈εK␈↓ ¬@␈ε¬0␈ε→∀␈↓ ¬k␈εt␈↓ ¬u␈ε¬,␈↓ ¬⎇␈εi␈↓ ε ␈ε¬,␈↓ ε⊃␈εj␈↓ ε≡␈ε¬<␈↓ ε;␈εK
␈β⊂ ␈↓ β9␈ε↓X␈↓ ∧}␈ε↓X␈↓ λM␈ε↓X
␈β⊂=␈↓ ¬j␈ε¬(␈↓ ¬t␈εs␈↓ ε␈ε¬+␈↓ ε≥␈εi␈↓ ε(␈ε¬+␈↓ εE␈εj␈↓ εR␈ε¬)␈↓ ε\␈εt
␈β⊂C␈↓ αd␈ε⊗⊃␈↓ ∧→␈ελU␈↓ ∧;␈ελV␈↓ ¬S␈ελ|␈↓ ε{␈ε⊗⊃␈↓ π3␈ελK␈↓ }␈ελU␈↓
!␈ελV␈↓
B␈εα.
␈β⊂Q␈↓ ∧0␈εi␈↓ ∧O␈εj␈↓
∃␈εi␈↓
5␈εj
␈β⊂s␈↓ λ'␈ε¬0␈ε→∀␈↓ λR␈εi␈↓ λ↑␈ε¬,␈↓ λf␈εj␈↓ λs␈ε¬<␈↓ ⊂␈εK
␈β⊂u␈↓ β∩␈ε¬0␈ε→␈α↓∀␈↓ β>␈εi␈↓ βI␈ε¬,␈↓ βQ␈εj␈↓ β↑␈ε¬<␈↓ β{␈εK␈↓ ∧c␈ε¬0␈ε→∀␈↓ ¬∞␈εt␈↓ ¬_␈ε¬<␈↓ ¬5␈εK
␈β⊃∂␈↓ πZ␈εi␈↓ πe␈ε¬+␈↓ λα␈εj␈↓ λ∂␈ε¬+␈↓ λ,␈εs␈↓ λ8␈ε→⊃␈ε¬0␈α↓(␈α␈mo␈α↓dulo␈↓ T␈εK␈↓ l␈ε¬)
␈β∪(
␈β↓Y␈↓ ↓H␈εα290␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ α␈εαThe␈αm␈α␈ultiplication␈αprocedure␈αis␈α
no␈α␈w␈αcomplete;␈αit␈α
remains␈αfor␈αus␈αto␈αspecify␈↓ ≠␈ελk
␈βαS␈↓ ↓H␈εαand␈↓ α␈ελl␈↓ α⊗␈εα,␈αand␈α
to␈αtotal␈α
up␈αthe␈α
amoun␈α␈t␈αof␈α
w␈α␈ork␈α
in␈α␈v␈α␈olv␈α␈ed.␈αLet␈↓ λ7␈ελM␈↓ λ]␈εα(␈↓ λi␈ελn␈↓ λ␈␈εα)␈α
denote␈αthe␈α
time␈α
it
␈βαy␈↓ βf␈εn␈↓ ,␈ε→0␈↓ ⊃␈εn
␈βα}␈↓ ↓H␈εαtak␈α␈es␈απto␈αλm␈α␈ultiply␈↓ βT␈εα2␈↓ βx␈εα-bit␈απn␈α␈um␈α␈bers␈αλby␈απthe␈αλabo␈α␈v␈α␈e␈απmethod,␈α and␈απlet␈↓ π␈ελM␈↓ 4␈εα(␈↓ @␈ελn␈↓ U␈εα)␈α
=␈↓
→␈ελM␈↓
?␈εα(␈↓
K␈ελn␈↓
a␈εα)/␈↓
␈␈εα2␈↓ "␈εα.
␈ββ*␈↓ ↓H␈εαThe␈α
calculation␈αtime␈αin␈α␈v␈α␈olv␈α␈es␈↓ ¬≥␈ελO␈↓ ¬7␈εα(␈↓ ¬C␈ελk␈↓ ¬U␈ελN␈↓ ¬w␈εα)␈α
cy␈α␈cles␈αfor␈αthe␈α
three␈αFourier␈αtransforms␈α
and
␈ββP␈↓ ε⊂␈εk
␈ββU␈↓ ↓H␈εαthe␈αother␈αauxiliary␈αoperations,␈αplus␈↓ ¬}␈εα2␈↓ ε*␈εαm␈α␈ultiplications␈αof␈αin␈α␈tegers␈αin␈αthe␈αin␈α␈terval
␈ββ{␈↓ αε␈ε¬4␈↓ α∀␈εL
␈β∧␈↓ ↓H␈εα[0,␈↓ ↓t␈εα2␈↓ α(␈εα],␈αhence␈αw␈α␈e␈αhav␈α␈e
␈β∧M␈↓ βc␈εk␈↓ ¬⎇␈εn␈↓ π→␈ε→0␈↓ λ=␈ε→0
␈β∧S␈↓ αF␈ελM␈↓ αk␈εα(␈↓ αw␈ελn␈↓ β
␈εα)␈α
=␈↓ βQ␈εα2␈↓ βq␈ελM␈↓ ∧↔␈εα(␈↓ ∧#␈ελl␈↓ ∧5␈εα+␈αλ2)␈αλ+␈↓ ¬3␈ελO␈↓ ¬M␈εα(␈↓ ¬Y␈ελk␈↓ ¬k␈εα2␈↓ ε∂␈εα);␈↓ εs␈ελM␈↓ π ␈εα(␈↓ π,␈ελn␈↓ πB␈εα)␈α
=␈α
8␈↓ λ_␈ελM␈↓ λD␈εα(␈↓ λP␈ελl␈↓ λc␈εα+␈αλ2)␈αλ+␈↓ a␈ελO␈↓ {␈εα(␈↓
π␈ελk␈↓
_␈εα).␈↓
p␈εα(41)
␈β¬!␈↓ ¬M␈ε→0
␈β¬&␈↓ ↓H␈εαWe␈α∞get␈α∂the␈α∞best␈α∂reduction␈α∂of␈↓ ¬'␈ελM␈↓ ¬T␈εα(␈↓ ¬`␈ελn␈↓ ¬v␈εα)␈α∞when␈↓ εq␈ελl␈↓ π ␈εαis␈α∂chosen␈α∂to␈α∞be␈α∂as␈α∞lo␈α␈w␈α∂as␈α∞possible,
␈β¬Q␈↓ ↓H␈εαconsisten␈α␈t␈αwith␈α(34),␈αso␈αw␈α␈e␈αset
␈βε$␈↓ ∧'␈ελk␈↓ ∧C␈εα=␈ε⊗␈α
b␈↓ ∧␈␈ελn␈↓ ¬∃␈εα/2␈ε⊗c␈εα␈αλ+␈αλ2,␈↓ εe␈ελl␈↓ εy␈εα=␈ε⊗␈α
d␈↓ π5␈ελn␈↓ πK␈εα/2␈ε⊗e␈αλ␈␈εα␈αλ1.␈↓
p␈εα(42)
␈βεq␈↓ l␈ε→0
␈βεv␈↓ α␈εαUnfortunately,␈α∞when␈α∞w␈α␈e␈α∞try␈α∞to␈α∞solv␈α␈e␈α
(41)␈α∞w␈α␈e␈α∞no␈α␈w␈α∞|nd␈α∞that␈↓ F␈ελM␈↓ s␈εα(␈↓ ␈␈ελn␈↓
∃␈εα)␈α∞is␈α∞of␈α
or-
␈βπ≥␈↓ α≡␈ε¬3
␈βπ"␈↓ ↓H␈εαder␈↓ αλ␈ελn␈↓ α,␈εα;␈α⊂the␈α∂recurrence␈α∞is␈α∂essen␈α␈tially␈α∂the␈α∞same␈α∂as␈α∞Eq.␈α∂(3)␈α∂near␈α∞the␈α∂beginning␈α∞of
␈βπM␈↓ ↓H␈εαthis␈αsection,␈α
but␈α
with␈α\8"␈α
replacing␈αthe␈α
coe}cien␈α␈t␈α\3".␈α∞Th␈α␈us␈α
the␈αm␈α␈ultiplication
␈βπs␈↓
B␈ε¬3
␈βπx␈↓ ↓H␈εαprocedure␈αw␈α␈e␈αhav␈α␈e␈αdescribed␈αhas␈αa␈αrunning␈αtime␈↓ πK␈ελM␈↓ πq␈εα(␈↓ π⎇␈ελn␈↓ λ∪␈εα)␈αof␈αorder␈↓ 3␈ελN␈↓ T␈εα(␈↓ `␈εαlog␈↓
∀␈ελN␈↓
6␈εα)␈↓
P␈εα.␈αThis
␈βλ#␈↓ ↓H␈εαis␈αasymptotically␈αfaster␈α
than␈αAlgorithm␈αC,␈α
but␈αit␈α
is␈αnot␈αthe␈α
best␈αpossible␈αresult
␈βλN␈↓ ↓H␈εαobtainable␈αwith␈αthe␈αFourier␈αtransform␈αmethods␈αw␈α␈e␈αare␈αusing.
␈βλz␈↓ α␈εαLet␈αus␈α
therefore␈αlook␈α
closely␈αat␈αthe␈α
abo␈α␈v␈α␈e␈αmethod␈α
and␈αtry␈αto␈α
mak␈α␈e␈αit␈αmore
␈β %␈↓ ↓H␈εαe}cien␈α␈t␈α(at␈αleast␈αasymptotically).␈αCareful␈αstudy␈αrev␈α␈eals␈αt␈α␈w␈α␈o␈αseparate␈αsources␈αof
␈β K␈↓ ε∧␈ε¬4␈↓ ε∩␈εL
␈β P␈↓ ↓H␈εαine}ciency:␈α∪(i)␈α
The␈α modulus␈↓ ¬∀␈ελM␈↓ ¬D␈εα=␈↓ ¬r␈εα2␈↓ ε+␈εα+␈α¬1␈α is␈α
m␈α␈uch␈α
larger␈α than␈α
needed,␈α
since␈α the
␈β v␈↓ λC␈ε¬2␈↓ λQ␈εL
␈β {␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αof␈αin␈α␈terest␈αnev␈α␈er␈αget␈αsubstan␈α␈tially␈αbigger␈αthan␈↓ λ1␈εα2␈↓ λm␈εα+␈απ1.␈α_(ii)␈αHalf␈αof␈αthe
␈β
&␈↓ ↓H␈εαdata␈α
to␈α the␈α
Fourier␈α
transforms␈α
is␈α
zero␈α
(namely␈↓ π!␈ελU␈↓ λ↓␈εα.␈αε.␈αε.␈↓ λ1␈ελU␈↓ α␈εαand␈↓ E␈ελV␈↓
#␈εα.␈αε.␈αε.␈↓
S␈ελV␈↓ ⊗␈εα).
␈β
4␈↓ π8␈εK␈↓ πP␈ε→␈␈ε¬␈α␈1␈↓ Y␈εK␈↓ q␈ε→␈␈ε¬1
␈β
5␈↓ λH␈εK␈↓ λ[␈ε¬/2␈↓
g␈εK␈↓
z␈ε¬/2
␈β
R␈↓ ↓H␈εαWe␈αshall␈αeliminate␈αeach␈αof␈αthese␈αencum␈α␈brances␈αin␈αturn.
␈βα␈↓ ¬c␈ε¬2␈↓ ¬q␈εL␈↓ λ∧␈ε¬4␈↓ λ∩␈εL
␈βπ␈↓ α␈εα(i)␈α
Suppose␈α
that␈α
w␈α␈e␈α
let␈↓ ∧s␈ελM␈↓ ¬#␈εα=␈↓ ¬Q␈εα2␈↓ ε
␈εα+␈αε1␈α
instead␈α
of␈↓ πr␈εα2␈↓ λ+␈εα+␈αε1;␈α
ho␈α␈w␈α
does␈α
this␈α
a{ect
␈β-␈↓ λ_␈ε¬4␈↓ λ&␈εL␈↓ λ:␈ε¬/␈↓ λI␈εK␈↓
↔␈ε¬8␈↓
&␈εL␈↓
:␈ε¬/␈↓
H␈εK
␈β2␈↓ ↓H␈εαthe␈απmethod?␈αIt␈απmeans␈αλthat␈απw␈α␈e␈αλshould␈αλno␈α␈w␈απchoose␈↓ π7␈ελ|␈↓ πX␈εα=␈↓ λε␈εα2␈↓ λh␈εαinstead␈αλof␈↓
¬␈εα2␈↓
`␈εα,␈αλand
␈β]␈↓ ↓H␈εα(34)␈α m␈α␈ust␈α
no␈α␈w␈α
be␈α changed␈α
to␈α \␈↓ ¬∨␈ελk␈↓ ¬;␈ε⊗∀␈↓ ¬i␈ελl␈↓ ¬x␈εα+␈α¬2␈ε⊗␈α
∀␈↓ εk␈ελn␈↓ π↓␈εα"␈α (cf.␈α
ex␈α␈ercise␈α
8).␈αMore␈α importan␈α␈tly,
␈ββ␈↓ ε*␈ε→0␈↓ λ~␈ε→0␈↓ ?␈ε→0
␈βλ␈↓ ↓H␈εαit␈α also␈α
means␈α
that␈α
the␈α
recurrence␈α
for␈↓ ε¬␈ελM␈↓ ε1␈εα(␈↓ ε=␈ελn␈↓ εS␈εα)␈α
becomes␈↓ πu␈ελM␈↓ λ"␈εα(␈↓ λ.␈ελn␈↓ λC␈εα)␈α
=␈α
4␈↓ →␈ελM␈↓ F␈εα(␈↓ R␈ελn␈↓ h␈εα)␈α¬+␈↓
"␈ελO␈↓
<␈εα(␈↓
H␈ελk␈↓
Z␈εα);␈α
the
␈β/␈↓ ∧¬␈ε→0␈↓ ¬h␈ε¬2␈↓ λ#␈ε¬3
␈β4␈↓ ↓H␈εαsolution␈α
no␈α␈w␈α∞has␈↓ β←␈ελM␈↓ ∧␈εα(␈↓ ∧_␈ελn␈↓ ∧.␈εα)␈α
of␈α∞order␈↓ ¬S␈ελn␈↓ ε∧␈εαinstead␈α∞of␈α
order␈↓ λ
␈ελn␈↓ λ1␈εα.␈α⊃Ho␈α␈w␈α␈ev␈α␈er,␈α∞the␈α
modulus
␈βZ␈↓ α7␈ε¬2␈↓ αF␈εL
␈β←␈↓ ↓H␈ελM␈↓ ↓w␈εα=␈↓ α%␈εα2␈↓ αa␈εα+␈απ1␈αisn't␈αlarge␈αenough␈αto␈αdetermine␈αthe␈αcoe}cien␈α␈ts␈↓ ⊃␈ελW␈↓ G␈εαexactly,␈αso␈αthe
␈βl␈↓ /␈εr
␈β
¬␈↓
t␈ε→0
␈β
␈↓ ↓H␈εαm␈α␈ultiplication␈α
procedure␈α∞is␈α
no␈α∞longer␈α∞valid;␈α∞w␈α␈e␈α∞obtain␈α
only␈α∞the␈α∞n␈α␈um␈α␈bers␈↓
P␈ελW␈↓ λ␈εα=
␈β
≤␈↓
n␈εr
␈β
0␈↓ αa␈ε¬2␈↓ αo␈εL
␈β
5␈↓ ↓H␈ελW␈↓ ↓y␈εαmod␈↓ αC␈εα(␈↓ αO␈εα2␈↓ β ␈εα+␈α¬1).␈αFortunately␈α
there␈α
is␈α
a␈α
way␈α
out,␈αas␈α
explained␈α
in␈α ex␈α␈ercise␈α
11:␈αw␈α␈e
␈β
C␈↓ ↓f␈εr
␈β
[␈↓ ¬$␈ε→00
␈β
`␈↓ ↓H␈εαcan␈αdetermine␈αthe␈αn␈α␈um␈α␈bers␈↓ ¬␈ελW␈↓ ¬<␈εα=␈↓ ¬j␈ελW␈↓ ε≠␈εαmod␈↓ εe␈εα(␈↓ εq␈ελK␈↓ π ␈εα/2)␈αwithout␈αm␈α␈uch␈αdi}culty,␈αand␈αit
␈β
n␈↓ ελ␈εr
␈β
r␈↓ ¬≡␈εr
␈β∞π␈↓ ¬I␈ε→0␈↓ ε?␈ε→00␈↓
E␈ε¬2␈↓
S␈εL
␈β∞␈↓ ↓H␈εαis␈αλpossible␈αλto␈αλcompute␈↓ ∧ ␈ελW␈↓ ∧S␈εαfrom␈↓ ¬%␈ελW␈↓ ¬Y␈εαand␈↓ ε≠␈ελW␈↓ εU␈εαsince␈↓ π)␈ελK␈↓ πA␈εα/2␈αλis␈αλrelativ␈α␈ely␈αλprime␈α to␈↓
3␈εα2␈↓
j␈εα+␈αα1.
␈β∞→␈↓ ∧>␈εr
␈β∞≡␈↓ ¬C␈εr␈↓ ε9␈εr
␈β∞A␈↓ α␈εα(ii)␈α∂We␈α∂can␈α∂also␈α∞change␈α∂the␈α∂basic␈α∂problem.␈α∀Instead␈α∂of␈α∂asking␈α∂for␈α∂an␈α∞algo-
␈β∞l␈↓ ↓H␈εαrithm␈α that␈α
determines␈α
the␈α
exact␈α product␈↓ εF␈ελu␈↓ ε\␈ελv␈↓ εo␈εα,␈α
it␈α
su}ces␈α to␈α
hav␈α␈e␈α
an␈α
algorithm␈α that
␈β∂∩␈↓ ∧∃␈εN
␈β∂↔␈↓ ↓H␈εαdetermines␈↓ α}␈ελu␈↓ β∀␈ελv␈↓ β-␈εαmod␈↓ βw␈εα(␈↓ ∧β␈εα2␈↓ ∧8␈εα+␈αλ1),␈αwhen␈↓ ¬w␈ελu␈↓ ε→␈εαand␈↓ ε←␈ελv␈↓ ε␈␈εαare␈↓ π;␈ελN␈↓ π]␈εα-bit␈αn␈α␈um␈α␈bers.␈α∞If␈αour␈αrecursiv␈α␈e
␈β∂B␈↓ ↓H␈εαprocedure␈α
is␈α
dev␈α␈eloped␈α
in␈α∞terms␈α
of␈α
this␈α
subproblem,␈α∞the␈α
wasteful␈α
\padding␈α
out
␈β∂n␈↓ ↓H␈εαwith␈α⊃zeros"␈α⊂needed␈α⊃to␈α⊃obtain␈α⊃an␈α⊃exact␈α⊃product␈α⊃will␈α⊃be␈α⊃performed␈α⊃only␈α⊂once,
␈β⊂→␈↓ ↓H␈εαinstead␈α∞of␈α∞at␈α∞ev␈α␈ery␈α∞lev␈α␈el␈α∂of␈α∞the␈α∞recursion.␈α∪Let␈α∞us␈α∞therefore␈α∞mak␈α␈e␈α∞the␈α∞follo␈α␈wing
␈β⊂D␈↓ ↓H␈εαchanges␈αto␈αthe␈αalgorithm:␈αEq.␈α(35)␈αbecomes
␈β⊃⊃␈↓ βq␈ε¬(␈↓ β{␈εK␈↓ ∧∞␈ε¬/2␈ε→␈α↓␈␈ε¬1)␈↓ ∧`␈εL␈↓ εD␈εL␈↓ λ`␈εN
␈β⊃∩␈↓ →␈ε→0
␈β⊃↔␈↓ ↓l␈ελu␈↓ α ␈ε⊗↓␈↓ α≠␈ελv␈↓ α8␈ε⊗⊃␈↓ αf␈ελW␈↓ β←␈εα2␈↓ ∧|␈εα+␈↓ ¬(␈ε⊗↓␈αε↓␈αε↓␈↓ ¬Z␈εα+␈↓ εε␈ελW␈↓ ε2␈εα2␈↓ ε`␈εα+␈↓ π␈ελW␈↓ πB␈εα(modulo␈↓ λN␈εα2␈↓ β␈εα+␈αλ1)␈↓
i␈εα(3␈↓ π␈εα5␈↓ ␈εα)
␈β⊃$␈↓ ε$␈ε¬1␈↓ π*␈ε¬0
␈β⊃%␈↓ β∧␈εK␈↓ β↔␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα291
␈βα&␈↓ ↓H␈εαand␈αEq.␈α(36)␈αbecomes
␈βαU␈↓ ¬ ␈ε↓X␈↓ π!␈ε↓X
␈βαs␈↓ →␈ε→0
␈βαx␈↓ ∧⊂␈ελW␈↓ ∧E␈εα=␈↓ ¬Y␈ελU␈↓ ¬{␈ελV␈↓ ε.␈ε⊗␈␈↓ λ↔␈ελU␈↓ λ9␈ελV␈↓ λZ␈εα.␈↓
i␈εα(3␈↓ π␈εα6␈↓ ␈εα)
␈ββε␈↓ ∧.␈εr␈↓ ¬p␈εi␈↓ ε∂␈εj␈↓ λ.␈εi␈↓ λM␈εj
␈ββ*␈↓ ∧s␈εi␈↓ ∧}␈ε¬+␈↓ ¬≠␈εj␈↓ ¬(␈ε¬=␈↓ ¬E␈εr␈↓ εd␈εi␈↓ εp␈ε¬+␈↓ π
␈εj␈↓ π~␈ε¬=␈↓ π7␈εK␈↓ πJ␈ε¬/2␈α↓+␈↓ λβ␈εr
␈ββh␈↓ βi␈ε¬2␈↓ βw␈εL
␈ββm␈↓ ↓H␈εαChoosing␈↓ αj␈ελM␈↓ β!␈εα=␈↓ βW␈εα2␈↓ ∧⊗␈εα+␈α1␈α⊃as␈α⊂suggested␈α⊃abo␈α␈v␈α␈e,␈α⊃w␈α␈e␈α⊃wish␈α⊂to␈α⊃compute␈↓
␈ελW␈↓
=␈εαmod␈↓ π␈ελM
␈ββz␈↓
)␈εr
␈β∧_␈↓ ↓H␈εαusing␈αan␈αin␈α␈teger␈αFourier␈αtransform␈αmodulo␈↓ εq␈ελM␈↓ π⊗␈εα;␈αthen␈αthe␈αtrue␈αvalue␈αof␈↓
∞␈ελW␈↓
E␈εαwill␈αbe
␈β∧%␈↓
,␈εr
␈β∧C␈↓ ↓H␈εαobtainable␈α
by␈αadapting␈αthe␈α
idea␈αof␈αex␈α␈ercise␈α
11␈αin␈αa␈α
straigh␈α␈tforward␈αmanner.␈αThe
␈β∧i␈↓
d␈ε¬4␈↓
r␈εL␈↓ ε␈ε¬/␈↓ ∃␈εK
␈β∧n␈↓ ↓H␈εαnew␈α form␈α
of␈↓ β
␈ελW␈↓ β?␈εαcan␈α
be␈α accommodated␈α
if␈α
w␈α␈e␈α mak␈α␈e␈α
use␈α of␈α
t␈α␈w␈α␈o␈α n␈α␈um␈α␈bers␈↓
↓␈ελ{␈↓
$␈εα=␈↓
R␈εα2
␈β∧|␈↓ β(␈εr
␈β¬∀␈↓ αu␈ε¬2␈↓ βN␈ε¬8␈↓ β\␈εL␈↓ βp␈ε¬/␈↓ β␈␈εK
␈β¬~␈↓ ↓H␈εαand␈↓ α∞␈ελ|␈↓ α/␈εα=␈↓ α]␈ελ{␈↓ β∞␈εα=␈↓ β<␈εα2␈↓ ∧↔␈εα;␈α(34)␈αbecomes
␈β¬g␈↓ →␈ε→0
␈β¬l␈↓ ¬A␈ελk␈↓ ¬]␈ε⊗∀␈↓ ε␈ελl␈↓ ε≥␈εα+␈αλ2␈ε⊗␈α
∀␈↓ π∪␈ελn␈↓ π)␈εα.␈↓
i␈εα(3␈↓ π␈εα4␈↓ ␈εα)
␈βε5␈↓ αy␈εα∂␈↓ β0␈εα∂␈↓ ∧'␈εα∂␈↓ ε⊂␈εα∂␈↓ εC␈εα∂␈↓ π7␈εα∂
␈βε>␈↓ ↓H␈εαIf␈α∩w␈α␈e␈α∩let␈α∩(␈↓ αs␈ελU␈↓ β~␈εα,␈↓ β*␈ελU␈↓ βQ␈εα,␈↓ βa␈εα.␈αε.␈αε.␈↓ ∧⊃␈εα,␈↓ ∧!␈ελU␈↓ ¬∃␈εα)␈α∪and␈α∩(␈↓ ε␈ελV␈↓ ε/␈εα,␈↓ ε?␈ελV␈↓ εc␈εα,␈↓ εs␈εα.␈αε.␈αε.␈↓ π#␈εα,␈↓ π3␈ελV␈↓ λ#␈εα)␈α∩be␈α∩the␈α∩in␈α␈teger␈α∩Fourier
␈βεK␈↓ β␈ε¬0␈↓ βC␈ε¬1␈↓ ε!␈ε¬0␈↓ εT␈ε¬1
␈βεL␈↓ ∧:␈εK␈↓ ∧M␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓ πH␈εK␈↓ π[␈ε¬/2␈ε→␈α↓␈␈ε¬1
␈βεi␈↓ ¬¬␈εK␈↓ ¬_␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓
␈εK␈↓ ≥␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1
␈βεn␈↓ ↓H␈εαtransforms␈απof␈αλ(␈↓ β)␈ελU␈↓ βN␈εα,␈↓ β↑␈ελ{␈↓ βw␈ελU␈↓ ∧≤␈εα,␈↓ ∧,␈εα.␈αε.␈αε.␈↓ ∧\␈εα,␈↓ ∧l␈ελ{␈↓ ¬`␈ελU␈↓ εR␈εα)␈αλand␈απ(␈↓ π3␈ελV␈↓ πV␈εα,␈↓ πf␈ελ{␈↓ π␈␈ελV␈↓ λ!␈εα,␈↓ λ1␈εα.␈αε.␈αε.␈↓ λa␈εα,␈↓ λq␈ελ{␈↓ e␈ελV␈↓
T␈εα),␈αλand
␈βε{␈↓ β@␈ε¬0␈↓ ∧∞␈ε¬1␈↓ πG␈ε¬0␈↓ λ∪␈ε¬1
␈βε|␈↓ ¬w␈εK␈↓ ε
␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓ y␈εK␈↓
␈ε¬/2␈ε→␈α↓␈␈ε¬1
␈βπ→␈↓ ↓H␈εα(␈↓ ↓T␈εα∂␈↓ ↓T␈ελa␈↓ ↓t␈εα,␈↓ α∧␈εα∂␈↓ α∧␈ελa␈↓ α$␈εα,␈↓ α4␈εα.␈αε.␈αε.␈↓ αd␈εα,␈↓ αt␈εα∂␈↓ αt␈ελa␈↓ βa␈εα)␈αthe␈αin␈α␈teger␈αFourier␈αtransform␈αof
␈βπ&␈↓ ↓f␈ε¬0␈↓ α⊗␈ε¬1
␈βπ'␈↓ βε␈εK␈↓ β→␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈βπi␈↓ ∧∃␈εα∂␈↓ ∧:␈εα∂␈↓ ∧n␈εα∂␈↓ ¬⊃␈εα∂␈↓ επ␈εα∂␈↓ εy␈εα∂
␈βπr␈↓ ∧β␈εα(␈↓ ∧∂␈ελU␈↓ ∧6␈ελV␈↓ ∧Z␈εα,␈↓ ∧j␈ελV␈↓ ¬
␈ελV␈↓ ¬1␈εα,␈↓ ¬A␈εα.␈αε.␈αε.␈↓ ¬q␈εα,␈↓ ε↓␈ελU␈↓ εu␈ελV␈↓ πe␈εα)␈↓ πw␈εαmod␈↓ λA␈ελM␈↓ λg␈εα,
␈βπ␈␈↓ ∧(␈ε¬0␈↓ ∧L␈ε¬0␈↓ ∧␈␈ε¬1␈↓ ¬#␈ε¬1
␈βλ␈↓ ε~␈εK␈↓ ε-␈ε¬/2␈ε→␈α↓␈␈ε¬1␈↓ π
␈εK␈↓ π≥␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈βλD␈↓ ↓H␈εαit␈αis␈αnot␈αdi}cult␈αto␈αmodify␈αour␈αprevious␈αderivation␈αto␈αobtain
␈β ⊂␈↓ ∧≥␈εk␈↓ ∧,␈ε→␈␈ε¬1␈↓ ∧p␈ε¬(␈ε→␈α␈␈␈↓ ¬⊗␈εr␈↓ ¬$␈ε¬)␈↓ ¬2␈ε¬mod␈↓ ¬m␈εK␈↓ ε␈ε¬/␈α↓2
␈β ⊃␈↓ →␈ε→0
␈β ⊗␈↓ β4␈εα∂␈↓ β4␈ελa␈↓ β]␈ε⊗⊃␈↓ ∧␈εα2␈↓ ∧W␈ελ{␈↓ ε#␈ελW␈↓ πx␈εα(modulo␈↓ ∧␈ελM␈↓ *␈εα),␈↓
i␈εα(3␈↓ π␈εα9␈↓ ␈εα)
␈β $␈↓ βF␈εr␈↓ εA␈ε¬(␈ε→␈␈↓ εg␈εr␈↓ εu␈ε¬)␈↓ πβ␈ε¬mo␈α↓d␈↓ π>␈εK␈↓ πR␈ε¬/2
␈β h␈↓ ↓H␈εαbecause␈α(40)␈αno␈α␈w␈αholds␈αwith␈↓ ¬∂␈ελK␈↓ ¬9␈εαreplaced␈αby␈↓ ε{␈ελK␈↓ π∪␈εα/2.
␈β
≥␈↓ α␈εαThe␈αλnet␈α result␈αλof␈αλall␈αλthis␈αλis␈α that␈αλw␈α␈e␈αλobtain␈αλa␈α method␈αλsatisfying␈αλthe␈αλrecurrences
␈β
i␈↓ αe␈εk␈↓ αs␈ε→␈␈ε¬1␈↓ ¬*␈εn␈↓ εF␈ε→0
␈β
j␈↓ →␈ε→0
␈β
p␈↓ ↓H␈ελM␈↓ ↓m␈εα(␈↓ ↓y␈ελn␈↓ α∂␈εα)␈α
=␈↓ αS␈εα2␈↓ β∨␈ελM␈↓ βD␈εα(␈↓ βP␈ελl␈↓ βb␈εα+␈αλ1)␈αλ+␈↓ ∧`␈ελO␈↓ ∧{␈εα(␈↓ ¬π␈ελk␈↓ ¬_␈εα2␈↓ ¬<␈εα),␈↓ ε ␈ελM␈↓ εM␈εα(␈↓ εY␈ελn␈↓ εo␈εα)␈α
=␈α
2␈↓ πE␈ελM␈↓ πj␈εα(␈↓ πv␈ελl␈↓ λ ␈εα+␈αλ1)␈αλ+␈↓ π␈ελO␈↓ !␈εα(␈↓ -␈ελk␈↓ ?␈εα),␈↓
i␈εα(4␈↓ π␈εα1␈↓ ␈εα)
␈β=␈↓ Q␈εn
␈βB␈↓ ↓H␈εαwhere␈↓ α2␈ελM␈↓ αW␈εα(␈↓ αc␈ελn␈↓ αy␈εα)␈α∞is␈α∞the␈α
running␈α∞time␈α∞of␈α∞a␈α∞procedure␈α∞that␈α∞m␈α␈ultiplies␈↓ ?␈εα2␈↓ c␈εα-bit␈α
n␈α␈um␈α␈bers
␈βd␈↓ αC␈ε
n
␈βh␈↓ α4␈ε¬2␈↓ ∧!␈ε→0␈↓ ε¬␈εn␈↓
≠␈ε→0
␈βm␈↓ ↓H␈εαmod␈α
(␈↓ α"␈εα2␈↓ αY␈εα+␈αε1),␈αand␈↓ β{␈ελM␈↓ ∧(␈εα(␈↓ ∧4␈ελn␈↓ ∧I␈εα)␈α
=␈↓ ¬
␈ελM␈↓ ¬3␈εα(␈↓ ¬?␈ελn␈↓ ¬U␈εα)/␈↓ ¬s␈εα2␈↓ ε↔␈εα.␈αWe␈αget␈αthe␈αbest␈αreduction␈α
of␈↓ u␈ελM␈↓
"␈εα(␈↓
.␈ελn␈↓
D␈εα)␈α
when
␈β∪␈↓ λA␈ε→0
␈β_␈↓ ↓H␈ελl␈↓ ↓↑␈εαis␈αchosen␈αto␈αbe␈αas␈αsmall␈αas␈αpossible,␈αconsisten␈α␈t␈αwith␈α(3␈↓ λ/␈εα4␈↓ λH␈εα),␈αso␈αw␈α␈e␈αset
␈βe␈↓ →␈ε→0
␈βj␈↓ ∧J␈ελk␈↓ ∧f␈εα=␈ε⊗␈α
d␈↓ ¬"␈ελn␈↓ ¬8␈εα/2␈ε⊗e␈εα␈αλ+␈αλ1,␈↓ πλ␈ελl␈↓ π≤␈εα=␈ε⊗␈α
b␈↓ πX␈ελn␈↓ πn␈εα/2␈ε⊗c␈εα.␈↓
i␈εα(4␈↓ π␈εα2␈↓ ␈εα)
␈β
<␈↓ α␈εαWe␈αhav␈α␈e␈αpro␈α␈v␈α␈ed␈αthat␈αthere␈αis␈αa␈αconstan␈α␈t␈↓ π∀␈ελC␈↓ π=␈εαsuch␈αthat
␈β
o␈↓ ∧O␈ε↓␈␈↓ εV␈ε↓↓
␈β∞λ␈↓ β#␈ε→0␈↓ ∧G␈ε→0
␈β∞∂␈↓ α⎇␈ελM␈↓ β*␈εα(␈↓ β6␈ελn␈↓ βL␈εα)␈ε⊗␈α
∀␈εα␈α
2␈↓ ∧"␈ελM␈↓ ∧]␈ε⊗b␈εα(␈↓ ∧w␈ελn␈↓ ¬∀␈ε⊗␈␈εα␈αλ2)/2␈ε⊗c␈εα␈αλ+␈αλ2␈↓ εl␈εα+␈↓ π_␈ελC␈↓ π6␈ελn␈↓ πK␈εα,␈↓ λ#␈εαfor␈αall␈↓
␈ελn␈↓ -␈ε⊗∃␈εα␈α
3.
␈β∞a␈↓ ↓H␈εαIterating␈αthis␈αrelation␈α(cf.␈αex␈α␈ercise␈α1.2.4↑35)␈αyields
␈β∂∪␈↓ ∧8␈ε↓␈␈↓ εM␈ε↓↓␈↓ π,␈ε↓␈␈↓
β␈ε↓↓
␈β∂-␈↓ α␈␈ε→0␈↓ β}␈εj␈↓ ∧1␈ε→0␈↓ ¬l␈εj␈↓ ∧␈εj␈↓ ⊃␈ε¬+1
␈β∂3␈↓ αY␈ελM␈↓ βε␈εα(␈↓ β∩␈ελn␈↓ β(␈εα)␈ε⊗␈α
∀␈↓ βl␈εα2␈↓ ∧␈ελM␈↓ ∧F␈ε⊗b␈εα(␈↓ ∧`␈ελn␈↓ ∧}␈ε⊗␈␈εα␈αλ2)/␈↓ ¬Z␈εα2␈↓ ¬y␈ε⊗c␈εα␈αλ+␈αλ2␈↓ εc␈εα+␈↓ π∂␈ελC␈↓ π:␈ελj␈↓ πK␈εα(␈↓ πW␈ελn␈↓ πt␈ε⊗␈␈εα␈αλ2)␈αλ+␈↓ λr␈εα2␈↓ E␈ε⊗␈␈εα␈αλ2␈↓
⊃␈εα,
␈β⊂␈↓ λW␈ε→0
␈β⊂¬␈↓ ↓H␈εαfor␈↓ α↓␈ελj␈↓ α≥␈εα=␈α1,␈α
2,␈↓ β∨␈εα.␈αε.␈αε.␈↓ βO␈εα,␈α∞1␈αλ+␈ε⊗␈α b␈↓ ∧<␈εαlg␈↓ ∧X␈εα(␈↓ ∧d␈ελn␈↓ ¬β␈ε⊗␈␈εα␈αλ2)␈ε⊗c␈εα;␈α∞and␈↓ ε:␈ελj␈↓ εV␈ε⊗→␈↓ πε␈εαlg␈↓ π(␈ελn␈↓ πK␈εαyields␈↓ λ2␈ελM␈↓ λ←␈εα(␈↓ λk␈ελn␈↓ ␈εα)␈α=␈↓ H␈ελO␈↓ b␈εα(␈↓ n␈ελn␈↓
␈εαlog␈↓
>␈ελn␈↓
S␈εα).␈α∂We
␈β⊂0␈↓ ↓H␈εαhav␈α␈e␈αpro␈α␈v␈α␈ed␈αthe␈αmain␈αresult␈αof␈αthis␈αsection:
␈β⊂o␈↓ ↓H␈ε∩Theorem␈α⊂S␈εα␈α⊂(A.␈α⊂Sch␈↓ ∧␈εα∪␈↓ ∧␈εαo␈↓ ∧∩␈εαnhage,␈α⊃V.␈α⊂Strassen)␈ε∩.␈ε∂␈α It␈α⊂is␈α⊃possible␈α⊂to␈α⊂m␈α␈ultiply␈α⊂t␈α␈w␈α␈o␈↓
←␈ελn␈↓
t␈ε∂-bit
␈β⊃~␈↓ ↓H␈ε∂n␈α␈um␈α␈bers␈αin␈↓ βα␈ελO␈↓ β≤␈εα(␈↓ β(␈ελn␈↓ βC␈εαlog␈↓ βw␈ελn␈↓ ∧∪␈εαlog␈↓ ∧G␈εαlog␈↓ ∧{␈ελn␈↓ ¬⊃␈εα)␈ε∂␈αcy␈α␈cles.
␈β∪(
␈β↓Y␈↓ ↓H␈εα292␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα(␈↓ α␈εαOur␈αform␈α␈ulation␈αof␈αthe␈αm␈α␈ultiplication␈αprocedure␈αwas␈αdesigned␈αprimarily␈αfor
␈βαS␈↓ ↓H␈εαsimplicity␈α∂of␈α⊂exposition;␈α⊃it␈α∂does␈α⊂not␈α∂turn␈α⊂out␈α∂to␈α⊂be␈α∂an␈α⊂especially␈α∂fast␈α∂method
␈βα}␈↓ ↓H␈εαfor␈α∂small␈↓ αd␈ελn␈↓ αy␈εα.␈α∃Th␈α␈us␈α∂the␈α∂algorithm␈α∂needs␈α∂to␈α∂be␈α∂re|ned␈α∂somewhat␈α∂if␈α∂it␈α∂is␈α∂ev␈α␈er␈α∂to
␈ββ*␈↓ ↓H␈εαbecome␈α competitiv␈α␈e␈α
with␈α Algorithm␈α C␈α
when␈↓ ε␈␈ελn␈↓ π≡␈εαis␈α
in␈α a␈α
practical␈α range.␈αAs␈↓
1␈ελn␈↓
P␈ε⊗!␈α
1␈εα,
␈ββU␈↓ ↓H␈εαof␈α∞course,␈α∞fast␈α∞Fourier␈α∞m␈α␈ultiplication␈α∞becomes␈α∞vastly␈α∞superior␈α∞to␈α∞Algorithm␈α
C.
␈β∧␈↓ ↓H␈εαJohn␈α
Pollard␈αhas␈αpresen␈α␈ted␈αa␈αfast␈α
Fourier␈αm␈α␈ultiplication␈αalgorithm␈αthat␈αis␈α
useful
␈β∧+␈↓ ↓H␈εαfor␈αmoderately␈αlarge␈↓ ∧∀␈ελn␈↓ ∧)␈εα,␈αin␈ε∂␈αMath.␈αComp.␈ε∩␈α25␈εα␈α(1971),␈α365↑374.
␈β∧←␈↓ α␈εαThe␈αw␈α␈ord␈α
\cy␈α␈cles"␈αin␈αTheorem␈α
S␈αhas␈α
been␈αused␈αsomewhat␈α
loosely;␈αw␈α␈e␈αhav␈α␈e
␈β¬
␈↓ ↓H␈εαimplicitly␈α⊃been␈α⊃assuming␈α⊃a␈α⊃\con␈α␈v␈α␈en␈α␈tional␈α⊃computer"␈α⊂with␈α⊃unlimited␈α⊃random-
␈β¬5␈↓ ↓H␈εαaccess␈α∞memory,␈α⊂which␈α∞tak␈α␈es␈α∂one␈α∞unit␈α∂of␈α∂time␈α∞to␈α∂read␈α∂and␈α∞write␈α∂an␈α␈y␈α∂bit.␈α∪This
␈β¬`␈↓ ↓H␈εαassumption␈α⊂is␈α⊃quite␈α⊃unrealistic␈α⊂as␈↓ ¬u␈ελn␈↓ ε≤␈ε⊗!␈α∩1␈εα,␈α∩since␈α⊂w␈α␈e␈α⊃need␈↓ ↓␈ελO␈↓ ≠␈εα(␈↓ '␈εαlog␈↓ [␈ελn␈↓ q␈εα)␈α⊂bits␈α⊃in␈α⊂an
␈βε␈↓ ↓H␈εαinstruction␈α
or␈αan␈αindex␈αregister␈αjust␈αto␈αbe␈α
able␈αto␈αdistinguish␈αbet␈α␈w␈α␈een␈↓
␈ελn␈↓
,␈εαmemory
␈βε7␈↓ ↓H␈εαcells,␈α
so␈α the␈α
actual␈α
time␈α to␈α
access␈α
memory␈α on␈α
a␈α
\con␈α␈v␈α␈en␈α␈tional␈α computer"␈α
is␈α really
␈βεb␈↓ ↓H␈εαproportional␈αto␈↓ βB␈εαlog␈↓ βv␈ελn␈↓ ∧␈εα.␈αWe␈αoften␈αforget␈αthis␈αdependence␈αon␈↓ λ↑␈ελn␈↓ ␈εαbecause␈αit␈αdoes␈αnot
␈βπ
␈↓ ↓H␈εαoccur␈αon␈αreal␈αmachines␈αwith␈αbounded␈αmemory␈αand␈αbounded␈αregister␈αsize.␈αWhen
␈βπ8␈↓ ↓H␈ελn␈↓ ↓g␈εαbecomes␈α
really␈α
large␈α
the␈α
only␈α
ph␈α␈ysically␈α
appropriate␈α
model␈α
seems␈α
to␈α
be␈α
a␈α
|nite
␈βπc␈↓ ↓H␈εαmemory␈αλwith␈αλa␈αλ|nite␈αλn␈α␈um␈α␈ber␈αλof␈αλarbitrarily␈αλlong␈αλtapes.␈α
The␈αλfast␈αλFourier␈αλtransform
␈βλ∂␈↓ ↓H␈εαcan␈α∞be␈α∞arranged␈α∞to␈α∂w␈α␈ork␈α∞with␈α∞restricted␈α∞storage␈α∂access␈α∞of␈α∞this␈α∞kind,␈α∂hence␈α∞the
␈βλ:␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελn␈↓ α ␈εαlog␈↓ α=␈ελn␈↓ αY␈εαlog␈↓ β
␈εαlog␈↓ βA␈ελn␈↓ βW␈εα)␈αtime␈αbound␈αapplies␈αto␈αthe␈αtape␈αmodel␈αof␈αcomputers␈αas␈αw␈α␈ell␈αas
␈βλe␈↓ ↓H␈εαthe␈αrandom-access␈αmodel.
␈β _␈↓ α␈εαThe␈αλdi{erence␈αλbet␈α␈w␈α␈een␈αλthese␈αλcomputer␈αλmodels␈αλcan␈αλbe␈αλclari|ed␈αλby␈αλconsidering
␈β >␈↓ λD␈εm
␈β C␈↓ ↓H␈εαanother␈α
method␈α
due␈α
to␈α
Sch␈↓ ∧n␈εα∪␈↓ ∧n␈εαo␈↓ ¬␈εαnhage␈α
and␈αStrassen:␈αIf␈↓ πd␈ελn␈↓ λ∧␈εα=␈↓ λ2␈εα2␈↓ λc␈ε⊗↓␈↓ λs␈ελm␈↓ ∩␈εα,␈αso␈α
that␈↓
≥␈ελm␈↓
G␈ε⊗→␈↓
u␈εαlg␈↓ ↔␈ελn
␈β j␈↓ α≤␈εm
␈β o␈↓ ↓H␈εαand␈↓ α
␈εα2␈↓ α@␈ε⊗→␈↓ αn␈ελn␈↓ ββ␈εα/␈↓ β≠␈εαlg␈↓ β=␈ελn␈↓ βS␈εα,␈α it␈αλis␈α possible␈αλto␈αλuse␈αλthe␈αλfast␈α Fourier␈αλtransform␈αλo␈α␈v␈α␈er␈αλthe␈αλcomplex
␈β
∃␈↓
4␈εm
␈β
~␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αto␈αcompute␈αthe␈αproduct␈αof␈αt␈α␈w␈α␈o␈↓ εE␈ελn␈↓ ε[␈εα-bit␈αn␈α␈um␈α␈bers␈αby␈αdoing␈↓ C␈ελO␈↓ ]␈εα(␈↓ i␈ελm␈↓
⊂␈ε⊗↓␈↓
"␈εα2␈↓
N␈εα)␈αm␈α␈ul-
␈β
@␈↓
0␈ε¬2
␈β
E␈↓ ↓H␈εαtiplications␈αof␈α6␈↓ β=␈ελm␈↓ β\␈εα-bit␈αn␈α␈um␈α␈bers.␈αEach␈αof␈αthe␈αlatter␈αcan␈αbe␈αbrok␈α␈en␈αin␈α␈to␈α1␈↓
≡␈εα2␈↓
H␈εα=␈α
144
␈β
m␈↓ βp␈ε¬1
␈β
p␈↓ ↓H␈εαm␈α␈ultiplications␈αλof␈α (␈↓ ∧α␈ελm␈↓ ∧"␈εα)-bit␈αλn␈α␈um␈α␈bers.␈αNo␈α␈w␈αλw␈α␈e␈α can␈αλconstruct␈α a␈αλm␈α␈ultiplication␈αλtable
␈β↓␈↓ βp␈∧↓βpα∂
␈ββ␈↓ βp␈ε¬2
␈β⊗␈↓ π3␈ε¬(1/␈α↓2)␈↓ πr␈εm
␈β≠␈↓ ↓H␈εαcon␈α␈taining␈α∂all␈α∂products␈↓ ∧G␈ελx␈↓ ∧Y␈ελy␈↓ ∧⎇␈εαwith␈α∂0␈ε⊗␈α⊂∀␈↓ ε'␈ελx␈↓ ε:␈εα,␈↓ εJ␈ελy␈↓ εn␈εα<␈↓ π!␈εα2␈↓ λ␈εα,␈α⊃by␈α∂repeated␈α∂addition,␈α⊂in
␈βB␈↓ α<␈ε¬(1/␈α↓2)␈↓ α{␈εm␈↓ βC␈ε¬(1/␈α↓2)␈↓ ∧α␈εm␈↓ λ2␈εm
␈βG␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελm␈↓ α↔␈ε⊗↓␈↓ α*␈εα2␈↓ β≡␈ε⊗↓␈↓ β1␈εα2␈↓ ∧≤␈εα)␈α∞cy␈α␈cles;␈α∂then␈α∞each␈α∞of␈α∞the␈↓ π>␈ελO␈↓ πX␈εα(␈↓ πd␈ελm␈↓ λ
␈ε⊗↓␈↓ λ ␈εα2␈↓ λL␈εα)␈α∞needed␈α∞products␈α∞can
␈βr␈↓ ↓H␈εαbe␈α∂done␈α⊂by␈α⊂table␈α⊂lookup␈α⊂in␈↓ ¬∪␈ελO␈↓ ¬-␈εα(␈↓ ¬9␈ελm␈↓ ¬X␈εα)␈α⊂cy␈α␈cles.␈α_The␈α∂total␈α⊂n␈α␈um␈α␈ber␈α⊂of␈α⊂cy␈α␈cles␈α⊂for␈ε∂␈α∂this
␈β_␈↓ ¬f␈ε¬2␈↓ επ␈εm
␈β≥␈↓ ↓H␈εαprocedure␈α
therefore␈α
comes␈α
to␈↓ ¬!␈ελO␈↓ ¬;␈εα(␈↓ ¬G␈ελm␈↓ ¬u␈εα2␈↓ ε!␈εα)␈α=␈↓ εi␈ελO␈↓ πβ␈εα(␈↓ π∂␈ελn␈↓ π+␈εαlog␈↓ π←␈ελn␈↓ πt␈εα);␈α∞w␈α␈e␈α
hav␈α␈e␈α∞gotten␈α
rid␈α
of␈α
the
␈βH␈↓ ↓H␈εαfactor␈↓ α4␈εαlog␈↓ αh␈εαlog␈↓ β≤␈ελn␈↓ βB␈εαin␈α⊂Theorem␈α⊃S␈↓ ¬!␈εα.␈α→But␈α⊂the␈α⊂method␈α⊂really␈ε∂␈α⊃requires␈εα␈α⊂an␈α⊂un␈α␈bounded
␈βs␈↓ ↓H␈εαrandom-access␈α∞memory,␈α∞since␈α∂the␈α∞table␈α∞lookup␈α∞cannot␈α∞be␈α∞done␈α∞e}cien␈α␈tly␈α∞with
␈β
∨␈↓ ↓H␈εαa␈α|nite␈α
n␈α␈um␈α␈ber␈α
of␈αtapes.␈α∞(Of␈α
course,␈α
a␈α
factor␈αof␈↓ πF␈εαlog␈↓ πz␈εαlog␈↓ λ.␈ελn␈↓ λP␈εαis␈α
utterly␈α
negligible␈αin
␈β
E␈↓ ¬W␈ε¬9␈↓ εA␈ε¬18
␈β
J␈↓ ↓H␈εαpractice;␈αwhen␈↓ β7␈ελn␈↓ βX␈εαchanges␈αfrom␈α1␈↓ ¬E␈εα0␈↓ ¬q␈εαto␈α1␈↓ ε/␈εα0␈↓ ε↑␈εα,␈αthe␈αvalue␈αof␈↓ λ:␈εαlg␈↓ λ\␈εαlg␈↓ λ}␈ελn␈↓ ∨␈εαincreases␈αby␈αonly
␈β
u␈↓ ↓H␈εαone.)
␈β∞(␈↓ α␈εαPerhaps␈↓ β↔␈ελO␈↓ β1␈εα(␈↓ β=␈ελn␈↓ βX␈εαlog␈↓ ∧␈ελn␈↓ ∧(␈εαlog␈↓ ∧\␈εαlog␈↓ ¬⊂␈ελn␈↓ ¬&␈εα)␈α∞will␈α∂turn␈α∂out␈α∞to␈α∂be␈α∂the␈α∞fastest␈α∂achievable␈α∞m␈α␈ul-
␈β∞T␈↓ ↓H␈εαtiplication␈α∞speed,␈α∂on␈α∞the␈α∞tape␈α∞model,␈α∂and␈↓ εj␈ελO␈↓ π∧␈εα(␈↓ π⊂␈ελn␈↓ π,␈εαlog␈↓ π`␈ελn␈↓ πv␈εα)␈α∞on␈α∞the␈α∞unlimited␈α∞random-
␈β∞␈␈↓ ↓H␈εαaccess␈α model;␈α
no␈α such␈α result␈α has␈α y␈α␈et␈α been␈α pro␈α␈v␈α␈ed.␈αThe␈α best␈αλlo␈α␈w␈α␈er␈α bound␈α kno␈α␈wn␈α to
␈β∂*␈↓ ↓H␈εαdate␈α
is␈α a␈α
rather␈α
deep␈α
theorem␈α
pro␈α␈v␈α␈ed␈α
by␈α
Michael␈α
S.␈α Paterson,␈αMichael␈α
J.␈α Fischer,
␈β∂U␈↓ ↓H␈εαand␈αAlbert␈αR.␈αMey␈α␈er␈α[␈ε∂SIAM-AMS␈αProceedings␈ε∩␈α7␈εα␈α(1974),␈α97↑111],␈αbased␈αon␈αtech-
␈β⊂␈↓ ↓H␈εαniques␈αoriginally␈αin␈α␈troduced␈αby␈αS.␈αA.␈αCook␈αand␈αS.␈αAanderaa,␈αthat␈αunder␈αcertain
␈β⊂,␈↓ ↓H␈εαrestrictions␈αthere␈αis␈αno␈αalgorithm␈αthat␈αm␈α␈ultiplies␈↓ πI␈ελn␈↓ π↑␈εα-bit␈αn␈α␈um␈α␈bers␈αwith␈αan␈αav␈α␈erage
␈β⊂W␈↓ ↓H␈εαof␈αfew␈α␈er␈αthan
␈β⊃~␈↓ ¬&␈ελO␈↓ ¬A␈εα(␈↓ ¬M␈ελn␈↓ ¬h␈εαlog␈↓ ε≤␈ελn␈↓ ε2␈εα/␈↓ εD␈εαlog␈↓ εx␈εαlog␈↓ π,␈ελn␈↓ πB␈εα)␈↓
p␈εα(43)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα293
␈βα&␈↓ ↓H␈εαoperations.␈αThe␈αrestrictions␈αunder␈αwhich␈α(43)␈αis␈αa␈αlo␈α␈w␈α␈er␈αbound␈αare␈αrather␈α
sev␈α␈ere:
␈βαQ␈↓ ↓H␈εα(a)␈α∞The␈α∂(␈↓ αY␈ελk␈↓ αu␈εα+␈α
1)st␈α∂input␈α∂sym␈α␈bols␈α∞of␈α∂the␈α∂operands,␈α⊂from␈α∞righ␈α␈t␈α∂to␈α∂left,␈α⊂m␈α␈ust␈α∞not
␈βα⎇␈↓ ↓H␈εαbe␈αread␈α
by␈αthe␈α
algorithm␈αun␈α␈til␈α
after␈αthe␈↓ εK␈ελk␈↓ ε]␈εαth␈αoutput␈α
sym␈α␈bol␈αhas␈α
been␈αproduced;
␈ββ(␈↓ ↓H␈εαand␈α↔(b)␈αthe␈αin␈α␈ternal␈αtables␈αk␈α␈ept␈αby␈αthe␈αalgorithm␈αm␈α␈ust␈αhav␈α␈e␈αa␈α\uniform"␈αstruc-
␈ββS␈↓ ↓H␈εαture,␈α
in␈α
an␈α
appropriate␈α
sense.␈αThe␈α
latter␈α
restriction␈α
rules␈α
out␈α
algorithms␈α
that␈α
use
␈ββ}␈↓ ↓H␈εαgeneral␈α
List␈αstructures␈α
for␈α
their␈αin␈α␈ternal␈α
tables,␈αand␈αthe␈α
|rst␈αrestriction␈α
rules␈α
out
␈β∧)␈↓ ↓H␈εαboth␈αAlgorithm␈α
C␈αand␈αAlgorithm␈αS␈↓ ¬p␈εα.␈αIt␈αis␈αstill␈αconceivable␈α(though␈αunlik␈α␈ely)␈α
that
␈β∧U␈↓ ↓H␈εαan␈α∞algorithm␈α∂violating␈α∂(a)␈α∂or␈α∂(b)␈α∞could␈α∂m␈α␈ultiply␈↓ πU␈ελn␈↓ πk␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∂in␈↓ q␈ελO␈↓
␈εα(␈↓
↔␈ελn␈↓
-␈εα)␈α∞cy␈α␈cles.
␈β¬␈↓ ↓H␈εαCon␈α␈v␈α␈ersely,␈α
M.␈α
J.␈α
Fischer␈α
and␈α
L.␈α
J.␈α
Stockmey␈α␈er␈α
hav␈α␈e␈α
sho␈α␈wn␈α
[␈ε∂J.␈αComputer␈α
and
␈β¬+␈↓ ↓H␈ε∂System␈α
Sciences␈ε∩␈α
9␈εα␈α
(1974),␈α317↑331]␈α
that␈α
m␈α␈ultiplication␈α
under␈α
restrictions␈α
(a)␈α
and
␈β¬Q␈↓ ∧w␈ε¬2
␈β¬V␈↓ ↓H␈εα(b)␈αis␈αpossible␈αin␈↓ βT␈ελO␈↓ βn␈εα(␈↓ βz␈ελn␈↓ ∧∃␈εα(␈↓ ∧!␈εαlog␈↓ ∧U␈ελn␈↓ ∧k␈εα)␈↓ ¬␈εαlog␈↓ ¬?␈εαlog␈↓ ¬s␈ελn␈↓ ε ␈εα)␈αcy␈α␈cles.
␈βε→␈↓ ↓H␈ε∩D.␈αDivision.␈εα␈α↔Using␈αa␈αfast␈αm␈α␈ultiplication␈αroutine,␈αw␈α␈e␈αcan␈αno␈α␈w␈αsho␈α␈w␈αthat␈αdivision
␈βεD␈↓ ↓H␈εαcan␈αalso␈αbe␈αaccomplished␈αin␈↓ ¬λ␈ελO␈↓ ¬"␈εα(␈↓ ¬.␈ελn␈↓ ¬I␈εαlog␈↓ ¬⎇␈ελn␈↓ ε→␈εαlog␈↓ εM␈εαlog␈↓ π↓␈ελn␈↓ π↔␈εα)␈αcy␈α␈cles.
␈βεo␈↓ α␈εαTo␈α∂divide␈α∞an␈↓ βi␈ελn␈↓ β␈␈εα-bit␈α∂n␈α␈um␈α␈ber␈↓ ¬J␈ελu␈↓ ¬n␈εαby␈α∂an␈↓ εY␈ελn␈↓ εo␈εα-bit␈α∞n␈α␈um␈α␈ber␈↓ λ:␈ελv␈↓ λL␈εα,␈α⊂w␈α␈e␈α∞may␈α∂|rst␈α∞|nd␈α∞an
␈βπ~␈↓ ↓H␈ελn␈↓ ↓]␈εα-bit␈α∂appro␈α␈ximation␈α∞to␈α∂1/␈↓ ∧j␈ελv␈↓ ∧⎇␈εα,␈α∂then␈α∞m␈α␈ultiply␈α∂by␈↓ π4␈ελu␈↓ πY␈εαto␈α∞get␈α∂an␈α∞appro␈α␈ximation␈↓
m␈εα∂␈↓
n␈ελq␈↓ ␈εαto
␈βπF␈↓ ↓H␈ελu␈↓ ↓]␈εα/␈↓ ↓o␈ελv␈↓ αα␈εα;␈α∩|nally,␈α∩w␈α␈e␈α⊂can␈α⊂mak␈α␈e␈α⊂the␈α⊂sligh␈α␈t␈α⊂correction␈α⊃necessary␈α⊂to␈↓ %␈εα∂␈↓ &␈ελq␈↓ F␈εαto␈α⊂ensure␈α⊂that
␈βπq␈↓ ↓H␈εα0␈ε⊗␈α∀␈↓ α⊗␈ελu␈↓ α5␈ε⊗␈␈↓ αb␈ελq␈↓ αr␈ελv␈↓ β⊃␈εα<␈↓ βB␈ελv␈↓ βb␈εαby␈α
using␈α∞another␈α
m␈α␈ultiplication.␈α⊂From␈α∞this␈α
reasoning,␈α∞w␈α␈e␈α
see
␈βλ≤␈↓ ↓H␈εαthat␈α
it␈α∞su}ces␈α∞to␈α
hav␈α␈e␈α∞an␈α
algorithm␈α∞that␈α∞appro␈α␈ximates␈α
the␈α∞reciprocal␈α∞of␈α
an␈↓ ␈ελn␈↓ ␈εα-
␈βλG␈↓ ↓H␈εαbit␈αn␈α␈um␈α␈ber,␈α
in␈↓ β8␈ελO␈↓ βR␈εα(␈↓ β↑␈ελn␈↓ βy␈εαlog␈↓ ∧-␈ελn␈↓ ∧I␈εαlog␈↓ ∧⎇␈εαlog␈↓ ¬1␈ελn␈↓ ¬G␈εα)␈αcy␈α␈cles.␈α∞The␈α
follo␈α␈wing␈αalgorithm␈α
achiev␈α␈es␈αthis,
␈βλr␈↓ ↓H␈εαusing␈α\Newton's␈αmethod"␈αas␈αexplained␈αat␈αthe␈αend␈αof␈αSection␈α4.3.1:
␈β 5␈↓ ↓H␈ε∩Algorithm␈α
R␈εα␈α
(␈ε∂High-precision␈α∞reciprocal␈↓ ε/␈εα)␈ε∩.␈εα␈α≤Let␈↓ π$␈ελv␈↓ πD␈εαhav␈α␈e␈α∞the␈α
binary␈α
represen␈α␈tation
␈β `␈↓ ↓H␈ελv␈↓ ↓e␈εα=␈α
(0.␈↓ α;␈ελv␈↓ αY␈ελv␈↓ αw␈ελv␈↓ β≤␈εα.␈αε.␈αε.␈↓ βL␈εα)␈↓ βf␈εα,␈αwhere␈↓ ∧d␈ελv␈↓ ¬
␈εα=␈α
1.␈α
This␈αalgorithm␈αcomputes␈αan␈αappro␈α␈ximation␈↓ ≥␈ελz
␈β m␈↓ αK␈ε¬1␈↓ αi␈ε¬2␈↓ βπ␈ε¬3␈↓ βX␈ε¬2␈↓ ∧t␈ε¬1
␈β
␈↓ ↓H␈εαto␈α1/␈↓ α_␈ελv␈↓ α*␈εα,␈αsuch␈αthat
␈β
1␈↓ π
␈ε→␈␈↓ π&␈εn
␈β
7␈↓ ¬2␈ε⊗j␈↓ ¬<␈ελz␈↓ ¬S␈ε⊗␈␈εα␈αλ1/␈↓ ε#␈ελv␈↓ ε6␈ε⊗j␈α
∀␈↓ εx␈εα2␈↓ π8␈εα.
␈β∧␈↓ ε≠␈ε¬1
␈βλ␈↓ ↓I␈ε∩R1.␈↓ α␈εα[Initial␈αappro␈α␈ximation.]␈α→Set␈↓ ¬P␈ελz␈↓ ¬i␈ε⊗ ␈↓ ε.␈ε⊗b␈εα32/(4␈↓ π⊂␈ελv␈↓ π6␈εα+␈αλ2␈↓ πt␈ελv␈↓ λ~␈εα+␈↓ λF␈ελv␈↓ λd␈εα)␈ε⊗c␈εα␈αand␈↓ P␈ελk␈↓ l␈ε⊗ ␈εα␈α
0.
␈β∃␈↓ π∨␈ε¬1␈↓ λ∧␈ε¬2␈↓ λV␈ε¬3
␈β_␈↓ ε≠␈∧_ε≠α∂
␈β~␈↓ ε≠␈ε¬4
␈β?␈↓ ↓I␈ε∩R2.␈↓ α␈εα[Newtonian␈α⊂iteration.]␈α!(At␈α⊃this␈α⊂poin␈α␈t␈α⊂w␈α␈e␈α⊃hav␈α␈e␈α⊂a␈α⊂n␈α␈um␈α␈ber␈↓ 7␈ελz␈↓ V␈εαof␈α⊂the␈α⊂binary
␈βe␈↓ ¬#␈εk
␈βj␈↓ α␈εαform␈α⊂(␈↓ αr␈ελx␈↓ β¬␈ελx␈↓ β_␈εα.␈↓ β"␈ελx␈↓ β5␈ελx␈↓ βM␈εα.␈αε.␈αε.␈↓ β⎇␈ελx␈↓ ∧⊂␈εα)␈↓ ∧;␈εαwith␈↓ ¬⊃␈εα2␈↓ ¬<␈εα+␈α1␈α⊂places␈α⊂after␈α⊂the␈α⊂radix␈α⊂poin␈α␈t,␈α∩and␈↓
0␈ελz␈↓
P␈ε⊗∀␈εα␈α⊂2.)
␈βw␈↓ ∧≤␈ε¬2
␈β⊂␈↓ βC␈ε¬2
␈β∃␈↓ α␈εαCalculate␈↓ β4␈ελz␈↓ βd␈εα=␈α∪(␈↓ ∧'␈ελx␈↓ ∧:␈ελx␈↓ ∧M␈ελx␈↓ ∧`␈εα.␈↓ ∧j␈ελx␈↓ ∧|␈ελx␈↓ ¬∃␈εα.␈αε.␈αε.␈↓ ¬E␈ελx␈↓ ¬X␈εα)␈↓ ε∧␈εαexactly,␈α∪using␈α⊃a␈α∩high-speed␈α⊃m␈α␈ultiplication
␈β"␈↓ ¬d␈ε¬2
␈β;␈↓ ¬8␈ε¬2
␈β@␈↓ α␈εαroutine.␈αThen␈αcalculate␈↓ ¬α␈ελV␈↓ ¬)␈ελz␈↓ ¬Q␈εαexactly,␈αwhere␈↓ π>␈ελV␈↓ πk␈εα=␈α
(0.␈↓ λA␈ελv␈↓ λ←␈ελv␈↓ β␈εα.␈αε.␈αε.␈↓ 3␈ελv␈↓
+␈εα)␈↓
E␈εα.␈αThen
␈βM␈↓ Q␈ε
k␈↓ ↑␈επ+␈α␈1
␈βN␈↓ ¬⊗␈εk␈↓ πR␈εk␈↓ λP␈ε¬1␈↓ λo␈ε¬2␈↓
7␈ε¬2
␈βO␈↓ C␈ε¬2␈↓ ␈␈ε¬+3
␈βi␈↓ πO␈ε
k␈↓ π[␈επ+1
␈βl␈↓ ∧∨␈ε¬2␈↓ π$␈ε→␈␈↓ πA␈ε¬2␈↓ π⎇␈ε→␈␈ε¬1
␈βr␈↓ α␈εαset␈↓ αF␈ελz␈↓ αa␈ε⊗ ␈εα␈α
2␈↓ β$␈ελz␈↓ β<␈ε⊗␈␈↓ βi␈ελV␈↓ ∧⊂␈ελz␈↓ ∧7␈εα+␈↓ ∧d␈ελr␈↓ ∧t␈εα,␈α∞where␈α
0␈ε⊗␈α
∀␈↓ εE␈ελr␈↓ εa␈εα<␈↓ π∩␈εα2␈↓ λ6␈εαis␈α∞added␈α
if␈α∞necessary␈α
to
␈β␈␈↓ β⎇␈εk
␈β
∀␈↓ π;␈ε
k␈↓ πH␈επ+␈α␈1
␈β
_␈↓ π⊂␈ε→␈␈↓ π-␈ε¬2␈↓ πj␈ε→␈␈ε¬␈α␈1
␈β
≥␈↓ α␈εα\round␈αup"␈↓ βL␈ελz␈↓ βg␈εαso␈αthat␈αit␈αis␈αa␈αm␈α␈ultiple␈αof␈↓ ε}␈εα2␈↓ λ∃␈εα.␈αFinally,␈αset␈↓ i␈ελk␈↓
∧␈ε⊗ ␈↓
2␈ελk␈↓
L␈εα+␈αλ1.
␈β
O␈↓ ∧P␈εk
␈β
T␈↓ ↓I␈ε∩R3.␈↓ α␈εα[Test␈α⊂for␈α⊃end.]␈α If␈↓ ∧>␈εα2␈↓ ∧o␈εα<␈↓ ¬$␈ελn␈↓ ¬:␈εα,␈α⊃go␈α⊃back␈α⊂to␈α⊂step␈α⊃R2;␈α∩otherwise␈α⊂the␈α⊂algorithm
␈β
␈␈↓ α␈εαterminates.
␈β∞∧␈↓ βd␈∧∞∧βd≠∂
␈β∞A␈↓ α␈εαThis␈α∂algorithm␈α∞is␈α∂based␈α∞on␈α∂a␈α∞method␈α∂suggested␈α∂by␈α∞S.␈α∂A.␈α∞Cook.␈α∀A␈α∞similar
␈β∞l␈↓ ↓H␈εαtechnique␈αεhas␈απbeen␈απused␈αεin␈απcomputer␈απhardware␈αε[see␈απAnderson,␈αλEarle,␈απGoldschmidt,
␈β∂_␈↓ ↓H␈εαand␈α∞Po␈α␈w␈α␈ers,␈ε∂␈α⊂IBM␈α∞J.␈α∂Res.␈α∞Dev.␈ε∩␈α∂11␈εα␈α∂(1967),␈α∂48↑52].␈α∀Of␈α∞course,␈α⊂it␈α∞is␈α∂necessary␈α∞to
␈β∂C␈↓ ↓H␈εαcheck␈α
the␈αaccuracy␈α
of␈α
Algorithm␈α
R␈α
quite␈α
carefully,␈α
because␈α
it␈α
comes␈α
v␈α␈ery␈αclose
␈β∂n␈↓ ↓H␈εαto␈αbeing␈αinaccurate.␈αWe␈αwill␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat
␈β⊂;␈↓ λG␈ε
k
␈β⊂?␈↓ λ≤␈ε→␈␈↓ λ8␈ε¬2
␈β⊂E␈↓ ∧!␈ελz␈↓ ∧:␈ε⊗∀␈εα␈α
2␈↓ ¬B␈εαand␈↓ εD␈ε⊗j␈↓ εN␈ελz␈↓ εe␈ε⊗␈␈εα␈αλ1/␈↓ π5␈ελv␈↓ πH␈ε⊗j␈α
∀␈↓ λ
␈εα2␈↓
p␈εα(44)
␈β⊃≤␈↓ ↓H␈εαat␈αthe␈αbeginning␈αand␈αend␈αof␈αstep␈αR2.
␈β∪(
␈β↓Y␈↓ ↓H␈εα294␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα&␈↓ α␈εαFor␈α∩this␈α⊃purpose,␈α∪let␈↓ ∧r␈ελ∞␈↓ ¬!␈εα=␈α∪1/␈↓ ¬|␈ελv␈↓ ε≠␈ε⊗␈␈↓ εK␈ελz␈↓ εe␈εα,␈α∪where␈↓ πp␈ελz␈↓ λ≤␈εαis␈α∩the␈α⊃value␈α∩of␈↓
≡␈ελz␈↓
?␈εαafter␈↓ ≠␈ελk
␈βα4␈↓ ∧␈␈εk␈↓ εW␈εk␈↓ π|␈εk
␈βαL␈↓
y␈ε→0
␈βαQ␈↓ ↓H␈εαiterations␈α
of␈α
step␈α
R2.␈α∂To␈α
start␈α
the␈α
induction␈α
on␈↓ πJ␈ελk␈↓ π\␈εα,␈α
w␈α␈e␈α
hav␈α␈e␈↓ λ␈␈ελ∞␈↓ &␈εα=␈α1/␈↓ z␈ελv␈↓
∃␈ε⊗␈␈εα␈α 8/␈↓
f␈ελv␈↓ λ␈εα+
␈βα←␈↓ ␈ε¬0
␈βαx␈↓ α≤␈ε→0␈↓ β.␈ε→0␈↓ ε8␈ε→0␈↓ I␈ε→0␈↓
n␈ε→0
␈βα⎇␈↓ ↓H␈εα(32/␈↓ α
␈ελv␈↓ α,␈ε⊗␈␈αλb␈εα32/␈↓ β≤␈ελv␈↓ β6␈ε⊗c␈εα)/4␈↓ β␈␈εα=␈↓ ∧/␈ελ⊃␈↓ ∧X␈εα+␈↓ ¬∧␈ελ⊃␈↓ ¬%␈εα,␈α
where␈↓ ε%␈ελv␈↓ εK␈εα=␈α(␈↓ πε␈ελv␈↓ π$␈ελv␈↓ πB␈ελv␈↓ πa␈εα)␈↓ λλ␈εαand␈↓ λO␈ελ⊃␈↓ λ{␈εα=␈α(␈↓ 6␈ελv␈↓ Y␈ε⊗␈␈εα␈α 8␈↓
_␈ελv␈↓
*␈εα)/␈↓
H␈ελv␈↓
[␈ελv␈↓
u␈εα,␈α
so
␈ββ
␈↓ ∧A␈ε¬1␈↓ ¬⊗␈ε¬2␈↓ π⊗␈ε¬1␈↓ π4␈ε¬2␈↓ πR␈ε¬3␈↓ πm␈ε¬2␈↓ λa␈ε¬1
␈ββ%␈↓ α=␈ε¬1␈↓ ¬h␈ε¬1␈↓ πe␈ε¬1
␈ββ(␈↓ ↓H␈εαthat␈ε⊗␈α␈␈↓ αY␈εα<␈↓ βπ␈ελ⊃␈↓ β2␈ε⊗∀␈εα␈α
0␈αand␈α0␈ε⊗␈α
∀␈↓ ¬␈ελ⊃␈↓ ¬6␈εα<␈↓ ¬{␈εα.␈αHence␈ε⊗␈αj␈↓ πβ␈ελ∞␈↓ π∨␈ε⊗j␈εα␈α
<␈↓ πw␈εα.␈αNo␈α␈w␈αsuppose␈αthat␈α(44)␈αhas
␈ββ5␈↓ β→␈ε¬1␈↓ ¬≡␈ε¬2␈↓ π⊂␈ε¬0
␈ββ8␈↓ α=␈∧β8α=α∂␈↓ ¬h␈∧β8¬hα∂␈↓ πe␈∧β8πeα∂
␈ββ;␈↓ α=␈ε¬2␈↓ ¬h␈ε¬4␈↓ πe␈ε¬2
␈ββS␈↓ ↓H␈εαbeen␈αv␈α␈eri|ed␈αfor␈↓ βS␈ελk␈↓ βd␈εα;␈αthen
␈β∧$␈↓ αm␈ελ∞␈↓ β>␈εα=␈α
1/␈↓ ∧⊂␈ελv␈↓ ∧+␈ε⊗␈␈↓ ∧W␈ελz␈↓ ¬&␈εα=␈α
1/␈↓ ¬x␈ελv␈↓ ε∪␈ε⊗␈␈↓ ε?␈ελz␈↓ εb␈ε⊗␈␈↓ π∞␈ελz␈↓ π(␈εα(1␈ε⊗␈αλ␈␈↓ πz␈ελz␈↓ λ∃␈ελV␈↓ λ7␈εα)␈ε⊗␈αλ␈␈↓ λw␈ελr
␈β∧1␈↓ αz␈εk␈↓ β ␈ε¬+␈α␈1␈↓ ∧c␈εk␈↓ ∧q␈ε¬+1␈↓ εK␈εk␈↓ π~␈εk␈↓ λε␈εk␈↓ λ)␈εk
␈β∧P␈↓ λ
␈ε¬2
␈β∧V␈↓ ¬&␈εα=␈↓ ¬T␈ελ∞␈↓ ¬x␈ε⊗␈␈↓ ε$␈ελz␈↓ ε>␈εα(1␈ε⊗␈αλ␈␈↓ π⊂␈ελz␈↓ π+␈ελv␈↓ π>␈εα)␈ε⊗␈αλ␈␈↓ π}␈ελz␈↓ λ≠␈εα(␈↓ λ'␈ελv␈↓ λB␈ε⊗␈␈↓ λn␈ελV␈↓ ⊂␈εα)␈ε⊗␈αλ␈␈↓ P␈ελr
␈β∧d␈↓ ¬a␈εk␈↓ ε0␈εk␈↓ π≤␈εk␈↓ α␈εk
␈β∧h␈↓ λ
␈εk
␈β¬β␈↓ λ3␈ε¬2
␈β¬ ␈↓ ¬&␈εα=␈↓ ¬T␈ελ∞␈↓ ¬x␈ε⊗␈␈εα␈αλ(1/␈↓ εT␈ελv␈↓ εo␈ε⊗␈␈↓ π≠␈ελ∞␈↓ π6␈εα)␈↓ πB␈ελv␈↓ πU␈ελ∞␈↓ πx␈ε⊗␈␈↓ λ$␈ελz␈↓ λB␈εα(␈↓ λN␈ελv␈↓ λi␈ε⊗␈␈↓ ∃␈ελV␈↓ 7␈εα)␈ε⊗␈αλ␈␈↓ w␈ελr
␈β¬⊗␈↓ ¬a␈εk␈↓ π(␈εk␈↓ πb␈εk␈↓ )␈εk
␈β¬≠␈↓ λ3␈εk
␈β¬5␈↓ ¬x␈ε¬2␈↓ εJ␈ε¬2
␈β¬;␈↓ ¬&␈εα=␈↓ ¬T␈ελv␈↓ ¬g␈ελ∞␈↓ ε∂␈ε⊗␈␈↓ ε;␈ελz␈↓ εX␈εα(␈↓ εd␈ελv␈↓ ε␈␈ε⊗␈␈↓ π+␈ελV␈↓ πN␈εα)␈ε⊗␈αλ␈␈↓ λ∞␈ελr␈↓ λ≥␈εα.
␈β¬H␈↓ π?␈εk
␈β¬M␈↓ ¬x␈εk␈↓ εJ␈εk
␈βε
␈↓ ↓H␈εαNo␈α␈w
␈βε.␈↓ ε{␈ε
k␈↓ λ↔␈ε
k␈↓ λ#␈επ+1
␈βε2␈↓ ¬∪␈ε¬2␈↓ ¬k␈ε¬2␈↓ εO␈ε→␈␈↓ εl␈ε¬2␈↓ π∪␈ε¬2␈↓ πl␈ε→␈␈↓ λλ␈ε¬2
␈βε8␈↓ ∧%␈εα0␈ε⊗␈α
∀␈↓ ∧o␈ελv␈↓ ¬α␈ελ∞␈↓ ¬,␈εα<␈↓ ¬Z␈ελ∞␈↓ εβ␈ε⊗∀␈εα␈α
(␈↓ ε=␈εα2␈↓ ππ␈εα)␈↓ π,␈εα=␈↓ πZ␈εα2␈↓ λE␈εα,
␈βεJ␈↓ ¬∪␈εk␈↓ ¬k␈εk
␈βε|␈↓ ↓H␈εαand
␈βπ≡␈↓ ε+␈ε
k␈↓ ε8␈επ+␈α␈1␈↓ λα␈ε
k␈↓ λ∞␈επ+1␈↓ P␈ε
k␈↓ ]␈επ+␈α␈1
␈βπ!␈↓ βD␈ε¬2␈↓ ε␈ε→␈␈↓ ε≥␈ε¬2␈↓ εY␈ε→␈␈ε¬3␈↓ πW␈ε→␈␈↓ πs␈ε¬2␈↓ λ0␈ε→␈␈ε¬1␈↓ %␈ε→␈␈↓ B␈ε¬2
␈βπ(␈↓ αk␈εα0␈ε⊗␈α
∀␈↓ β5␈ελz␈↓ βS␈εα(␈↓ β←␈ελv␈↓ βz␈ε⊗␈␈↓ ∧&␈ελV␈↓ ∧H␈εα)␈αλ+␈↓ ¬λ␈ελr␈↓ ¬"␈εα<␈α
4(␈↓ ¬n␈εα2␈↓ π¬␈εα)␈αλ+␈↓ πE␈εα2␈↓ λe␈εα=␈↓ ∪␈εα2␈↓ ␈␈εα,
␈βπ5␈↓ ∧:␈εk
␈βπc␈↓ βR␈ε
k␈↓ β↑␈επ+1
␈βπg␈↓ β&␈ε→␈␈↓ βC␈ε¬2
␈βπl␈↓ ↓H␈εαso␈ε⊗␈α∂j␈↓ α↓␈ελ∞␈↓ αH␈ε⊗j␈α∂∀␈↓ β∀␈εα2␈↓ ∧␈εα.␈α⊗We␈α∂m␈α␈ust␈α∂still␈α∂v␈α␈erify␈α∂the␈α⊂|rst␈α∂inequality␈α∂of␈α∂(44);␈α⊃to␈α∂sho␈α␈w
␈βπy␈↓ α∞␈εk␈↓ α≤␈ε¬+1
␈βλ∀␈↓ π\␈ε¬1
␈βλ↔␈↓ ↓H␈εαthat␈↓ α_␈ελz␈↓ αl␈ε⊗∀␈εα␈α∂2,␈α∂there␈α∂are␈α∞three␈α∂cases:␈α≡(a)␈↓ εt␈ελV␈↓ π%␈εα=␈↓ πn␈εα;␈α⊂then␈↓ λ]␈ελz␈↓ 1␈εα=␈α∞2.␈α≡(b)␈↓
X␈ελV␈↓ λ␈ε⊗≤
␈βλ$␈↓ α$␈εk␈↓ α3␈ε¬+1␈↓ πλ␈εk␈↓ λi␈εk␈↓ λw␈ε¬+1␈↓
l␈εk
␈βλ'␈↓ π\␈∧λ'π\α∂
␈βλ*␈↓ π\␈ε¬2
␈βλ?␈↓ πs␈ε
k␈↓ λ␈επ+␈α␈1
␈βλB␈↓ ¬⎇␈ε¬2␈↓ πH␈ε→␈␈↓ πe␈ε¬2␈↓ λ"␈ε→␈␈ε¬␈α␈1
␈βλD␈↓ ↓L␈ε¬1␈↓
;␈ε¬1
␈βλG␈↓ ↓l␈εα=␈↓ α≥␈ελV␈↓ αk␈εα;␈α∂then␈↓ βX␈ελz␈↓ ∧␈εα=␈α∞2,␈α∂so␈α∞2␈↓ ¬≥␈ελz␈↓ ¬A␈ε⊗␈␈↓ ¬n␈ελz␈↓ ε␈ελV␈↓ ε<␈ε⊗∀␈εα␈α
2␈ε⊗␈α
␈␈↓ π6␈εα2␈↓ λM␈εα.␈α≥(c)␈↓ *␈ελV␈↓
¬␈ε⊗≤␈↓
M␈εα;␈α∂then
␈βλU␈↓ α1␈εk␈↓ α@␈ε→␈␈ε¬␈α␈1␈↓ βd␈εk␈↓ ¬)␈εk␈↓ ε ␈εk␈↓ >␈εk␈↓ M␈ε→␈␈ε¬␈α␈1
␈βλX␈↓ ↓L␈∧λX↓Lα∂␈↓
;␈∧λX
;α∂
␈βλY␈↓ ¬⎇␈εk
␈βλZ␈↓ ↓L␈ε¬2␈↓
;␈ε¬2
␈βλo␈↓ ¬2␈ε
k␈↓ ¬?␈επ+␈α␈1
␈βλs␈↓ ¬π␈ε→␈␈↓ ¬$␈ε¬2
␈βλx␈↓ ↓H␈ελz␈↓ α↔␈εα=␈α
1/␈↓ αi␈ελv␈↓ β∧␈ε⊗␈␈↓ β0␈ελ∞␈↓ ∧↓␈εα<␈α
2␈ε⊗␈αλ␈␈↓ ∧u␈εα2␈↓ ¬j␈ε⊗∀␈εα␈α
2,␈αsince␈↓ π_␈ελk␈↓ π4␈εα>␈α
0.
␈β ¬␈↓ ↓T␈εk␈↓ ↓b␈ε¬+1␈↓ β=␈εk␈↓ βL␈ε¬+␈α␈1
␈β #␈↓ α␈εαThe␈αrunning␈αtime␈αof␈αAlgorithm␈αR␈αis␈αbounded␈αby
␈β v␈↓ πP␈ε¬1
␈β y␈↓ βJ␈εα2␈↓ β\␈ελT␈↓ βu␈εα(4␈↓ ∧∪␈ελn␈↓ ∧)␈εα)␈αλ+␈αλ2␈↓ ∧{␈ελT␈↓ ¬∀␈εα(2␈↓ ¬2␈ελn␈↓ ¬H␈εα)␈αλ+␈αλ2␈↓ ε~␈ελT␈↓ ε3␈εα(␈↓ ε?␈ελn␈↓ εU␈εα)␈αλ+␈αλ2␈↓ π'␈ελT␈↓ π@␈εα(␈↓ πc␈ελn␈↓ πx␈εα)␈↓ λ∧␈ε⊗↓␈αε↓␈αε↓␈↓ λ6␈εα+␈↓ λb␈ελO␈↓ λ|␈εα(␈↓ λ␈ελn␈↓ ≡␈εα)
␈β
␈↓ πP␈∧
πPα∂
␈β
␈↓ πP␈ε¬2
␈β
P␈↓ ↓H␈εαcy␈α␈cles,␈αwhere␈↓ β ␈ελT␈↓ β:␈εα(␈↓ βF␈ελn␈↓ β[␈εα)␈αis␈αan␈αupper␈αbound␈αon␈αthe␈αtime␈αneeded␈αto␈αdo␈αa␈αm␈α␈ultiplication
␈β
{␈↓ ↓H␈εαof␈↓ ↓t␈ελn␈↓ α
␈εα-bit␈α∂n␈α␈um␈α␈bers.␈α∀When␈↓ ∧↑␈ελT␈↓ ∧w␈εα(␈↓ ¬β␈ελn␈↓ ¬→␈εα)␈α∞=␈↓ ¬f␈ελC␈↓ εβ␈ελn␈↓ ε∨␈εαlog␈↓ εS␈ελn␈↓ εn␈εαlog␈↓ π"␈εαlog␈↓ πV␈ελn␈↓ πl␈εα,␈α⊂w␈α␈e␈α∞hav␈α␈e␈↓ ∃␈ελT␈↓ .␈εα(4␈↓ L␈ελn␈↓ b␈εα)␈α
+␈↓
&␈ελT␈↓
?␈εα(2␈↓
]␈ελn␈↓
s␈εα)␈α +
␈β&␈↓ ↓H␈ελT␈↓ ↓a␈εα(␈↓ ↓m␈ελn␈↓ αβ␈εα)␈απ+␈↓ αA␈ε⊗↓␈αε↓␈αε↓␈↓ αu␈εα<␈↓ β#␈ελT␈↓ β<␈εα(8␈↓ βZ␈ελn␈↓ βo␈εα),␈αso␈αdivision␈αcan␈αbe␈αdone␈αwith␈αa␈αspeed␈αcomparable␈αto␈αthat␈αof
␈βQ␈↓ ↓H␈εαm␈α␈ultiplication␈αex␈α␈cept␈αfor␈αa␈αconstan␈α␈t␈αfactor.
␈β∩␈↓ ↓H␈ε∩E.␈α An␈α ev␈α␈en␈α faster␈α m␈α␈ultiplication␈α method.␈εα␈α∩It␈α is␈α natural␈αλto␈α w␈α␈onder␈α if␈α m␈α␈ultiplication
␈β=␈↓ ↓H␈εαof␈↓ ↓t␈ελn␈↓ α ␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∞can␈α∞actually␈α∞be␈α∞accomplished␈α∞in␈α
just␈↓ λ6␈ελn␈↓ λZ␈εαsteps.␈α∩We␈α∞hav␈α␈e␈α
come
␈βd␈↓ α1␈ε¬2␈↓ βd␈ε¬1␈α↓+␈↓ ∧∂␈ε∂
␈βi␈↓ ↓H␈εαfrom␈↓ α≠␈ελn␈↓ αI␈εαdo␈α␈wn␈α to␈↓ βN␈ελn␈↓ ∧≠␈εα,␈α
so␈α
perhaps␈α w␈α␈e␈α
can␈α squeeze␈α
the␈α time␈α do␈α␈wn␈α
ev␈α␈en␈α more.␈αThis
␈β
∀␈↓ ↓H␈εαis␈α
still␈α∞an␈α
unsolv␈α␈ed␈α∞problem,␈α
as␈α∞poin␈α␈ted␈α
out␈α∞abo␈α␈v␈α␈e;␈α∞but␈α∞it␈α
is␈α
in␈α␈teresting␈α∞to␈α
note
␈β
?␈↓ ↓H␈εαthat␈αit␈αis␈αactually␈αpossible␈αto␈αoutput␈αthe␈αansw␈α␈er␈αas␈αfast␈αas␈αw␈α␈e␈αinput␈αthe␈αdigits,␈αif
␈β
j␈↓ ↓H␈εαw␈α␈e␈α
leav␈α␈e␈α
the␈α
domain␈α
of␈αcon␈α␈v␈α␈en␈α␈tional␈α
computer␈α
programming␈α
and␈α
allo␈α␈w␈α
ourselv␈α␈es
␈β∞∃␈↓ ↓H␈εαto␈αεbuild␈αεa␈απcomputer␈αεthat␈απhas␈αεan␈απunlimited␈αεn␈α␈um␈α␈ber␈αεof␈απcomponen␈α␈ts␈αεall␈απacting␈αεat␈αεonce.
␈β∞A␈↓ α␈εαA␈ε∂␈αlinear␈αiterativ␈α␈e␈αarray␈εα␈αof␈αautomata␈αis␈αa␈αset␈αof␈αdevices␈↓ λl␈ελM␈↓ →␈εα,␈↓ /␈ελM␈↓ \␈εα,␈↓ r␈ελM␈↓
∨␈εα,␈↓
5␈εα.␈αε.␈αε.␈↓
j␈εαthat
␈β∞N␈↓ ␈ε¬1␈↓ N␈ε¬2␈↓
⊃␈ε¬3
␈β∞l␈↓ ↓H␈εαcan␈αλeach␈αλbe␈α in␈αλa␈α |nite␈αλset␈αλof␈α \states"␈αλat␈α each␈αλstep␈αλof␈α a␈αλcomputation.␈αThe␈αλmachines
␈β∂↔␈↓ ↓H␈ελM␈↓ ↓u␈εα,␈↓ α ␈ελM␈↓ α7␈εα,␈↓ αK␈εα.␈αε.␈αε.␈↓ α␈␈εαall␈α
hav␈α␈e␈ε∂␈αiden␈α␈tical␈εα␈α
circuitry,␈α
and␈α
their␈α
state␈α
at␈α
time␈↓ ∀␈ελt␈↓ '␈εα+␈α¬1␈α
is␈α
a␈α
function
␈β∂$␈↓ ↓g␈ε¬2␈↓ α(␈ε¬3
␈β∂B␈↓ ↓H␈εαof␈αtheir␈αo␈α␈wn␈αstate␈αat␈αtime␈↓ ∧d␈ελt␈↓ ∧⎇␈εαas␈αw␈α␈ell␈αas␈αthe␈αstates␈αof␈αtheir␈αleft␈αand␈αrigh␈α␈t␈αneigh␈α␈bors
␈β∂m␈↓ ↓H␈εαat␈αtime␈↓ αG␈ελt␈↓ αT␈εα.␈α∞The␈α
|rst␈α
machine␈↓ ¬⊃␈ελM␈↓ ¬K␈εαis␈α
sligh␈α␈tly␈αdi{eren␈α␈t:␈α∞its␈α
state␈αat␈α
time␈↓
∃␈ελt␈↓
*␈εα+␈α 1␈α
is␈αa
␈β∂{␈↓ ¬0␈ε¬1
␈β⊂→␈↓ ↓H␈εαfunction␈αof␈αits␈α
o␈α␈wn␈αstate␈αand␈αthat␈αof␈↓ ε
␈ελM␈↓ ε8␈εα,␈αat␈αtime␈↓ πI␈ελt␈↓ πV␈εα,␈αand␈αalso␈αof␈αthe␈ε∂␈αinput␈εα␈αat␈α
time
␈β⊂&␈↓ ε)␈ε¬2
␈β⊂D␈↓ ↓H␈ελt␈↓ ↓U␈εα.␈αThe␈ε∂␈α
output␈εα␈α
of␈α
a␈αlinear␈α
iterativ␈α␈e␈α
array␈α
is␈α
a␈α
function␈α
de|ned␈αon␈α
the␈α
states␈α
of␈↓
u␈ελM␈↓ "␈εα.
␈β⊂Q␈↓ ∀␈ε¬1
␈β⊂o␈↓ α␈εαLet␈↓ αP␈ελu␈↓ αt␈εα=␈α∞(␈↓ β2␈ελu␈↓ ∧
␈εα.␈αε.␈αε.␈↓ ∧:␈ελu␈↓ ∧]␈ελu␈↓ ¬␈εα)␈↓ ¬~␈εα,␈↓ ¬3␈ελv␈↓ ¬T␈εα=␈α∞(␈↓ ε∩␈ελv␈↓ εe␈εα.␈αε.␈αε.␈↓ π∃␈ελv␈↓ π3␈ελv␈↓ πQ␈εα)␈↓ πk␈εα,␈α∂and␈↓ λM␈ελq␈↓ λk␈εα=␈α∞(␈↓ )␈ελq␈↓ y␈εα.␈αε.␈αε.␈↓
)␈ελq␈↓
D␈ελq␈↓
`␈εα)␈↓ λ␈εαbe
␈β⊂|␈↓ βG␈εn␈↓ βX␈ε→␈␈ε¬1␈↓ ∧N␈ε¬1␈↓ ∧q␈ε¬0␈↓ ¬␈ε¬2␈↓ ε!␈εn␈↓ ε3␈ε→␈␈ε¬1␈↓ π$␈ε¬1␈↓ πC␈ε¬0␈↓ π]␈ε¬2␈↓ 6␈εn␈↓ H␈ε→␈␈ε¬␈α␈1␈↓
6␈ε¬1␈↓
Q␈ε¬0␈↓
l␈ε¬2
␈β⊃~␈↓ ↓H␈εαbinary␈αn␈α␈um␈α␈bers,␈αand␈αlet␈↓ ∧N␈ελu␈↓ ∧d␈ελv␈↓ ∧␈␈εα+␈↓ ¬+␈ελq␈↓ ¬F␈εα=␈↓ ¬t␈ελw␈↓ ε→␈εα=␈α
(␈↓ εS␈ελw␈↓ π=␈εα.␈αε.␈αε.␈↓ πm␈ελw␈↓ λ∪␈ελw␈↓ λ9␈εα)␈↓ λS␈εα.␈α
It␈αis␈αremarkable␈αfact
␈β⊃(␈↓ εk␈ε¬2␈↓ εy␈εn␈↓ π␈ε→␈␈ε¬1␈↓ λ∧␈ε¬1␈↓ λ+␈ε¬0␈↓ λE␈ε¬2
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα295
␈βα(␈↓ ↓H␈εαthat␈απa␈αλlinear␈αλiterativ␈α␈e␈αλarray␈αλcan␈απbe␈αλconstructed,␈α independen␈α␈t␈αλof␈↓ ⊃␈ελn␈↓ &␈εα,␈α that␈αλwill␈απoutput
␈βαS␈↓ ↓H␈ελw␈↓ ↓n␈εα,␈↓ αβ␈ελw␈↓ α)␈εα,␈↓ α?␈ελw␈↓ αe␈εα,␈↓ αz␈εα.␈αε.␈αε.␈↓ β/␈εαat␈αtimes␈α1,␈α2,␈α3,␈↓ ¬/␈εα.␈αε.␈αε.␈↓ ¬←␈εα,␈αif␈αit␈αis␈αgiv␈α␈en␈αthe␈αinputs␈α(␈↓ λp␈ελu␈↓ ∪␈εα,␈↓ #␈ελv␈↓ A␈εα,␈↓ Q␈ελq␈↓ m␈εα),␈α(␈↓
~␈ελu␈↓
=␈εα,␈↓
M␈ελv␈↓
k␈εα,␈↓
{␈ελq␈↓ ⊗␈εα),
␈βαa␈↓ ↓←␈ε¬0␈↓ α≠␈ε¬1␈↓ αV␈ε¬2␈↓ ¬␈ε¬0␈↓ 3␈ε¬0␈↓ ↑␈ε¬0␈↓
.␈ε¬1␈↓
]␈ε¬1␈↓ λ␈ε¬1
␈βα}␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα,␈↓ α5␈ελq␈↓ αP␈εα),␈↓ αr␈εα.␈αε.␈αε.␈↓ β(␈εαat␈αtimes␈α0,␈α1,␈α2,␈↓ ¬,␈εα.␈αε.␈αε.␈↓ ¬b␈εα.
␈ββ␈↓ ↓h␈ε¬2␈↓ α⊗␈ε¬2␈↓ αB␈ε¬2
␈ββ*␈↓ α␈εαWe␈α∞can␈α∞state␈α∞this␈α∞phenomenon␈α∞in␈α∞the␈α∞language␈α∞of␈α∞computer␈α∞hardware,␈α∞by
␈ββU␈↓ ↓H␈εαsaying␈αthat␈αit␈αis␈αpossible␈αto␈αdesign␈αa␈αsingle␈α\in␈α␈tegrated␈αcircuit␈αmodule"␈αwith␈αthe
␈β∧␈↓ ↓H␈εαfollo␈α␈wing␈α∞property:␈α∩If␈α∞w␈α␈e␈α∂wire␈α∂together␈α∞su}cien␈α␈tly␈α∂man␈α␈y␈α∂of␈α∞these␈α∂devices␈α∂in␈α∞a
␈β∧+␈↓ ↓H␈εαstraigh␈α␈t␈α line,␈α
with␈α
each␈α
module␈α comm␈α␈unicating␈α
only␈α with␈α
its␈α
left␈α and␈α
righ␈α␈t␈α neigh-
␈β∧V␈↓ ↓H␈εαbors,␈αthe␈αresulting␈αcircuitry␈αwill␈αproduce␈αthe␈α2␈↓ π≥␈ελn␈↓ π3␈εα-bit␈αproduct␈αof␈↓ &␈ελn␈↓ ;␈εα-bit␈αn␈α␈um␈α␈bers␈αin
␈β¬α␈↓ ↓H␈εαexactly␈α2␈↓ αX␈ελn␈↓ αy␈εαclock␈αpulses.
␈β¬-␈↓ α␈εαHere␈α is␈α the␈α
basic␈α idea␈α behind␈α this␈α construction:␈αAt␈α time␈α 0,␈α
machine␈↓
_␈ελM␈↓
N␈εαsenses
␈β¬:␈↓
7␈ε¬1
␈β¬X␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα,␈↓ α5␈ελq␈↓ αP␈εα)␈α∞and␈α∂it␈α∞therefore␈α∞is␈α∞able␈α∞to␈α∂output␈α∞(␈↓ π~␈ελu␈↓ π=␈ελv␈↓ πd␈εα+␈↓ λ∩␈ελq␈↓ λ-␈εα)␈↓ λ?␈εαmod␈↓ ␈εα2␈α∞at␈α∂time␈α∞1.␈α∩Then
␈β¬e␈↓ ↓h␈ε¬0␈↓ α⊗␈ε¬0␈↓ αB␈ε¬0␈↓ π.␈ε¬0␈↓ πM␈ε¬0␈↓ λ∨␈ε¬0
␈βεβ␈↓ ↓H␈εαit␈α∞sees␈α∂(␈↓ αE␈ελu␈↓ αh␈εα,␈↓ αx␈ελv␈↓ β⊗␈εα,␈↓ β&␈ελq␈↓ βA␈εα)␈α∂and␈α∞it␈α∂can␈α∞output␈α∂(␈↓ ε∀␈ελu␈↓ ε7␈ελv␈↓ ε←␈εα+␈↓ π
␈ελu␈↓ π/␈ελv␈↓ πW␈εα+␈↓ λ¬␈ελq␈↓ λ*␈εα+␈↓ λX␈ελk␈↓ λv␈εα)␈↓ λ␈εαmod␈↓ R␈εα2,␈α∂where␈↓
h␈ελk␈↓ ∀␈εαis
␈βε⊃␈↓ αY␈ε¬1␈↓ βπ␈ε¬1␈↓ β3␈ε¬1␈↓ ε)␈ε¬0␈↓ εG␈ε¬1␈↓ π!␈ε¬1␈↓ π?␈ε¬0␈↓ λ∩␈ε¬1␈↓ λh␈ε¬1␈↓
x␈ε¬1
␈βε.␈↓ ↓H␈εαthe␈α
\carry"␈α∞left␈α∞o␈α␈v␈α␈er␈α∞from␈α
the␈α∞previous␈α∞step,␈α∞at␈α∞time␈α
2.␈α∩Next␈α
it␈α∞sees␈α∞(␈↓
$␈ελu␈↓
G␈εα,␈↓
W␈ελv␈↓
u␈εα,␈↓ ¬␈ελq␈↓ ␈εα)
␈βε<␈↓
8␈ε¬2␈↓
g␈ε¬2␈↓ ∩␈ε¬2
␈βεZ␈↓ ↓H␈εαand␈αoutputs␈α(␈↓ β≤␈ελu␈↓ β?␈ελv␈↓ βd␈εα+␈↓ ∧∂␈ελu␈↓ ∧2␈ελv␈↓ ∧W␈εα+␈↓ ¬↓␈ελu␈↓ ¬$␈ελv␈↓ ¬I␈εα+␈↓ ¬t␈ελq␈↓ ε⊗␈εα+␈↓ εA␈ελk␈↓ ε`␈εα)␈↓ εr␈εαmod␈↓ π<␈εα2;␈αfurthermore,␈αits␈αstate␈αrecords
␈βεg␈↓ β0␈ε¬0␈↓ βO␈ε¬2␈↓ ∧#␈ε¬1␈↓ ∧A␈ε¬1␈↓ ¬⊗␈ε¬2␈↓ ¬4␈ε¬0␈↓ ε↓␈ε¬2␈↓ εQ␈ε¬2
␈βπ¬␈↓ ↓H␈εαthe␈α∞values␈α∂of␈↓ β%␈ελu␈↓ βW␈εαand␈↓ ∧∨␈ελv␈↓ ∧L␈εαso␈α∞that␈α∂machine␈↓ ε[␈ελM␈↓ π↔␈εαwill␈α∂be␈α∞able␈α∂to␈α∞sense␈α∂these␈α∞values
␈βπ∩␈↓ β:␈ε¬2␈↓ ∧/␈ε¬2␈↓ εz␈ε¬2
␈βπ0␈↓ ↓H␈εαat␈αtime␈α
3,␈α
and␈↓ β6␈ελM␈↓ βp␈εαwill␈α
be␈αable␈α
to␈α
compute␈↓ εq␈ελu␈↓ π∀␈ελv␈↓ π?␈εαfor␈αthe␈α
bene|t␈α
of␈↓ W␈ελM␈↓
⊃␈εαat␈α
time␈α4.
␈βπ=␈↓ βU␈ε¬2␈↓ πε␈ε¬2␈↓ π$␈ε¬2␈↓ v␈ε¬1
␈βπ[␈↓ ↓H␈εαMachine␈↓ α[␈ελM␈↓ β↔␈εαessen␈α␈tially␈α∂arranges␈α∂to␈α∞start␈↓ εa␈ελM␈↓ π≡␈εαm␈α␈ultiplying␈α∂the␈α∞sequence␈α∂(␈↓
E␈ελu␈↓
h␈εα,␈↓
x␈ελv␈↓ ⊗␈εα),
␈βπi␈↓ αz␈ε¬1␈↓ π␈ε¬2␈↓
Z␈ε¬2␈↓ λ␈ε¬2
␈βλε␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα),␈↓ αD␈εα.␈αε.␈αε.␈↓ αt␈εα,␈α and␈↓ βI␈ελM␈↓ β}␈εαwill␈α ultimately␈αλgiv␈α␈e␈↓ ε0␈ελM␈↓ εf␈εαthe␈αλjob␈αλof␈αλm␈α␈ultiplying␈αλ(␈↓ I␈ελu␈↓ l␈εα,␈↓ |␈ελv␈↓
~␈εα),␈α (␈↓
E␈ελu␈↓
h␈εα,␈↓
x␈ελv␈↓ ⊗␈εα),
␈βλ∀␈↓ ↓h␈ε¬3␈↓ α⊗␈ε¬3␈↓ βh␈ε¬2␈↓ εO␈ε¬3␈↓ ↑␈ε¬4␈↓
␈ε¬4␈↓
Z␈ε¬5␈↓ λ␈ε¬5
␈βλ2␈↓ ↓H␈εαetc.␈αFortunately,␈α things␈α
just␈α w␈α␈ork␈α out␈α so␈α that␈α no␈α
time␈α is␈α lost.␈αThe␈α reader␈α will␈α |nd
␈βλ]␈↓ ↓H␈εαit␈αin␈α␈teresting␈αto␈αdeduce␈αfurther␈αdetails␈αfrom␈αthe␈αformal␈αdescription␈αthat␈αfollo␈α␈ws.
␈β β␈↓ ∧o␈ε¬11
␈β λ␈↓ α␈εαEach␈αautomaton␈αhas␈↓ ∧]␈εα2␈↓ ¬_␈εαstates␈α(␈↓ ε
␈ελc␈↓ ε_␈εα,␈↓ ε(␈ελx␈↓ εG␈εα,␈↓ εW␈ελy␈↓ εv␈εα,␈↓ πε␈ελx␈↓ π%␈εα,␈↓ π5␈ελy␈↓ πU␈εα,␈↓ πe␈ελx␈↓ πx␈εα,␈↓ λλ␈ελy␈↓ λ≤␈εα,␈↓ λ,␈ελz␈↓ λF␈εα,␈↓ λV␈ελz␈↓ λp␈εα,␈↓ ␈ελz␈↓ ≠␈εα),␈αwhere␈α0␈ε⊗␈α∀␈↓
p␈ελc␈↓ λ␈εα<
␈β ∃␈↓ ε9␈ε¬0␈↓ εh␈ε¬0␈↓ π↔␈ε¬1␈↓ πF␈ε¬1␈↓ λ8␈ε¬2␈↓ λb␈ε¬1␈↓ ␈ε¬0
␈β 3␈↓ ↓H␈εα4␈α⊂and␈α⊃each␈α⊃of␈α⊃the␈↓ β}␈ελx␈↓ ∧⊂␈εα's,␈↓ ∧D␈ελy␈↓ ∧Y␈εα's,␈α∩and␈↓ ¬W␈ελz␈↓ ¬f␈εα's␈α⊃is␈α⊃either␈α⊃0␈α⊃or␈α⊂1.␈α≠Initially,␈α∩all␈α⊃devices␈α⊂are
␈β ↑␈↓ ↓H␈εαin␈α∪state␈α∀(0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0).␈α"Suppose␈α∪that␈α∀a␈α∪machine␈↓ ¬␈ελM␈↓ 1␈εα,␈↓ P␈ελj␈↓ w␈εα>␈α↔1,␈α∃is␈α∪in
␈β l␈↓ $␈εj
␈β
␈↓ ↓H␈εαstate␈α∩(␈↓ α2␈ελc␈↓ α@␈εα,␈↓ αP␈ελx␈↓ αo␈εα,␈↓ α␈␈ελy␈↓ β≡␈εα,␈↓ β.␈ελx␈↓ βM␈εα,␈↓ β]␈ελy␈↓ β⎇␈εα,␈↓ ∧
␈ελx␈↓ ∧ ␈εα,␈↓ ∧0␈ελy␈↓ ∧D␈εα,␈↓ ∧T␈ελz␈↓ ∧n␈εα,␈↓ ∧}␈ελz␈↓ ¬_␈εα,␈↓ ¬(␈ελz␈↓ ¬C␈εα)␈α∩at␈α∩time␈↓ εl␈ελt␈↓ εy␈εα,␈α∪and␈α∪its␈α∩left␈α∩neigh␈α␈bor␈↓ {␈ελM␈↓
d␈εαis␈α∩in
␈β
↔␈↓ αa␈ε¬0␈↓ β⊂␈ε¬0␈↓ β?␈ε¬1␈↓ βn␈ε¬1␈↓ ∧`␈ε¬2␈↓ ¬
␈ε¬1␈↓ ¬4␈ε¬0␈↓
~␈εj␈↓
'␈ε→␈␈ε¬1
␈β
0␈↓ α@␈εl␈↓ αk␈εl␈↓ β≥␈εl␈↓ βN␈εl␈↓ ∧↓␈εl␈↓ ∧2␈εl␈↓ ∧↑␈εl␈↓ ¬¬␈εl␈↓ ¬3␈εl␈↓ ¬`␈εl
␈β
5␈↓ ↓H␈εαstate␈α⊃(␈↓ α1␈ελc␈↓ αH␈εα,␈↓ αX␈ελx␈↓ αy␈εα,␈↓ β ␈ελy␈↓ β+␈εα,␈↓ β;␈ελx␈↓ β]␈εα,␈↓ βm␈ελy␈↓ ∧∂␈εα,␈↓ ∧∨␈ελx␈↓ ∧:␈εα,␈↓ ∧J␈ελy␈↓ ∧f␈εα,␈↓ ∧v␈ελz␈↓ ¬∀␈εα,␈↓ ¬$␈ελz␈↓ ¬A␈εα,␈↓ ¬Q␈ελz␈↓ ¬o␈εα)␈α⊃while␈α∩its␈α∩righ␈α␈t␈α∩neigh␈α␈bor␈↓ ≡␈ελM␈↓
π␈εαis␈α∩in␈α⊃state
␈β
B␈↓ =␈εj␈↓ J␈ε¬+1
␈β
G␈↓ αk␈ε¬0␈↓ β≥␈ε¬0␈↓ βN␈ε¬1␈↓ ∧↓␈ε¬1␈↓ ¬¬␈ε¬2␈↓ ¬3␈ε¬1␈↓ ¬`␈ε¬0
␈β
[␈↓ ↓b␈εr␈↓ α∩␈εr␈↓ αD␈εr␈↓ αv␈εr␈↓ β(␈εr␈↓ βY␈εr␈↓ ∧␈εr␈↓ ∧7␈εr␈↓ ∧d␈εr␈↓ ¬∩␈εr
␈β
`␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓o␈εα,␈↓ ↓␈␈ελx␈↓ α ␈εα,␈↓ α0␈ελy␈↓ αS␈εα,␈↓ αc␈ελx␈↓ β∧␈εα,␈↓ β∀␈ελy␈↓ β6␈εα,␈↓ βF␈ελx␈↓ βg␈εα,␈↓ βw␈ελy␈↓ ∧_␈εα,␈↓ ∧(␈ελz␈↓ ∧E␈εα,␈↓ ∧U␈ελz␈↓ ∧s␈εα,␈↓ ¬β␈ελz␈↓ ¬ ␈εα)␈αat␈α
that␈α
time.␈αThen␈α
machine␈↓ λr␈ελM␈↓ (␈εαwill␈αgo␈α
in␈α␈to␈α
state
␈β
m␈↓ ⊃␈εj
␈β
r␈↓ α∩␈ε¬0␈↓ αD␈ε¬0␈↓ αv␈ε¬1␈↓ β(␈ε¬1␈↓ ∧7␈ε¬2␈↓ ∧d␈ε¬1␈↓ ¬∩␈ε¬0
␈βε␈↓ ↓b␈ε→0␈↓ α␈ε→0␈↓ α>␈ε→0␈↓ αo␈ε→0␈↓ β"␈ε→0␈↓ βS␈ε→0␈↓ β}␈ε→0␈↓ ∧%␈ε→0␈↓ ∧R␈ε→0␈↓ ∧␈␈ε→0
␈β␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓i␈εα,␈↓ ↓y␈ελx␈↓ α~␈εα,␈↓ α*␈ελy␈↓ αM␈εα,␈↓ α]␈ελx␈↓ α}␈εα,␈↓ β∞␈ελy␈↓ β0␈εα,␈↓ β@␈ελx␈↓ βZ␈εα,␈↓ βj␈ελy␈↓ ∧ε␈εα,␈↓ ∧⊗␈ελz␈↓ ∧3␈εα,␈↓ ∧C␈ελz␈↓ ∧`␈εα,␈↓ ∧p␈ελz␈↓ ¬∞␈εα)␈αat␈αtime␈↓ ε$␈ελt␈↓ ε9␈εα+␈αλ1,␈αwhere
␈β≥␈↓ α␈ε¬0␈↓ α>␈ε¬0␈↓ αo␈ε¬1␈↓ β"␈ε¬1␈↓ ∧%␈ε¬2␈↓ ∧R␈ε¬1␈↓ ∧␈␈ε¬0
␈βN␈↓ β≤␈ε→0␈↓ ε&␈εl
␈βT␈↓ β
␈ελc␈↓ β-␈εα=␈↓ β[␈εαmin␈↓ ∧↔␈εα(␈↓ ∧#␈ελc␈↓ ∧9␈εα+␈αλ1,␈αε3)␈↓ ¬v␈εαif␈↓ ε_␈ελc␈↓ ε8␈εα=␈α
3,␈↓ πJ␈εα0␈↓ λIotherwise;
␈β↓␈↓ βJ␈ε→0␈↓ β|␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈βε␈↓ β+␈εα(␈↓ β7␈ελx␈↓ βX␈εα,␈↓ βh␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈εα=␈α
0,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πu␈εα,␈↓ λ¬␈ελy␈↓ λ%␈εα)␈α_otherwise;
␈β∪␈↓ πg␈ε¬0␈↓ λ⊗␈ε¬0
␈β_␈↓ βJ␈ε¬0␈↓ β|␈ε¬0
␈β≥␈↓
p␈εα(45)
␈β3␈↓ βJ␈ε→0␈↓ β|␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈β8␈↓ β+␈εα(␈↓ β7␈ελx␈↓ βX␈εα,␈↓ βh␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈εα=␈α
1,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πu␈εα,␈↓ λ¬␈ελy␈↓ λ%␈εα)␈α_otherwise;
␈βF␈↓ πg␈ε¬1␈↓ λ⊗␈ε¬1
␈βJ␈↓ βJ␈ε¬1␈↓ β|␈ε¬1
␈βf␈↓ βX␈ε→0␈↓ ∧∧␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈βk␈↓ β9␈εα(␈↓ βE␈ελx␈↓ β←␈εα,␈↓ βo␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈ε⊗∃␈εα␈α
2,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πi␈εα,␈↓ πy␈ελy␈↓ λ
␈εα)␈α0otherwise;
␈β
*␈↓ αF␈ε≠0␈↓ αc␈ε≠0
␈β
.␈↓ α)␈ε→0
␈β
3␈↓ ↓H␈εαand␈α(␈↓ α~␈ελz␈↓ α7␈ελz␈↓ αT␈ελz␈↓ αr␈εα)␈↓ β_␈εαis␈αthe␈αbinary␈αnotation␈αfor
␈β
@␈↓ α}␈ε¬2
␈β
E␈↓ α)␈ε¬2␈↓ αF␈ε¬1␈↓ αc␈ε¬0
␈β
\␈↓ ¬⊂␈ε↓8
␈β
|␈↓ ¬⊂␈ε↓>
␈β∞β␈↓ ¬;␈εl␈↓ ¬W␈εl
␈β∞ ␈↓ ¬(␈ελx␈↓ ¬C␈ελy␈↓ ¬←␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ π␈εα=␈α
0;
␈β∞∩␈↓ ¬⊂␈ε↓>
␈β∞'␈↓ ¬⊂␈ε↓<
␈β∞6␈↓ ¬[␈εl␈↓ ε*␈εl
␈β∞<␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε2␈ελy␈↓ εR␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ π␈εα=␈α
1;
␈β∞I␈↓ ¬9␈ε¬0␈↓ εC␈ε¬0
␈β∞L␈↓ β.␈εr␈↓ ∧N␈εl
␈β∞R␈↓ β∨␈ελz␈↓ βD␈εα+␈↓ βp␈ελz␈↓ ∧∪␈εα+␈↓ ∧?␈ελz␈↓ ∧d␈εα+␈↓
p␈εα(46)
␈β∞←␈↓ β|␈ε¬1
␈β∞d␈↓ β.␈ε¬0␈↓ ∧N␈ε¬2
␈β∞h␈↓ ¬⊂␈ε↓>␈↓ ¬[␈εl␈↓ π≥␈εl
␈β∞n␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε6␈ελy␈↓ ε↑␈εα+␈↓ π
␈ελx␈↓ π%␈ελy␈↓ πD␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ π␈εα=␈α
2;
␈β∞|␈↓ ¬9␈ε¬0␈↓ ε(␈ε¬1␈↓ εG␈ε¬1␈↓ π6␈ε¬0
␈β∞}␈↓ ¬⊂␈ε↓>
␈β∂∪␈↓ ¬⊂␈ε↓:
␈β∂~␈↓ ¬[␈εl␈↓ πw␈εl
␈β∂!␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε6␈ελy␈↓ εR␈εα+␈↓ ε}␈ελx␈↓ π⊃␈ελy␈↓ π9␈εα+␈↓ πe␈ελx␈↓ λ␈ελy␈↓ λ∨␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ π␈εα=␈α
3.
␈β∂.␈↓ ¬9␈ε¬0␈↓ ε(␈ε¬1␈↓ π"␈ε¬1␈↓ λ⊃␈ε¬0
␈β∂m␈↓ ↓H␈εαThe␈αleftmost␈αmachine␈↓ ∧+␈ελM␈↓ ∧d␈εαbehav␈α␈es␈αin␈αalmost␈αthe␈αsame␈αway␈αas␈αthe␈αothers;␈αit␈αacts
␈β∂{␈↓ ∧J␈ε¬1
␈β⊂→␈↓ ↓H␈εαexactly␈α as␈α
if␈α
there␈α w␈α␈ere␈α
a␈α machine␈α
to␈α
its␈α left␈α
in␈α
state␈α (3,␈αε0,␈αε0,␈αε0,␈αε0,␈↓ (␈ελu␈↓ >␈εα,␈↓ N␈ελv␈↓ a␈εα,␈↓ q␈ελq␈↓
↓␈εα,␈αε0,␈αε0)␈α when
␈β⊂D␈↓ ↓H␈εαit␈αεis␈αεreceiving␈απthe␈αεinputs␈αε(␈↓ ∧C␈ελu␈↓ ∧Y␈εα,␈↓ ∧i␈ελv␈↓ ∧|␈εα,␈↓ ¬␈ελq␈↓ ¬≤␈εα).␈α
The␈αεoutput␈απof␈αεthe␈απarray␈αεis␈αεthe␈↓ λ␈␈ελz␈↓ ∨␈εαcomponen␈α␈t␈απof␈↓
u␈ελM␈↓ "␈εα.
␈β⊂Q␈↓ ␈ε¬0␈↓ ∀␈ε¬1
␈β⊂o␈↓ α␈εαTable␈α⊃1␈α⊂sho␈α␈ws␈α⊃an␈α⊂example␈α⊃of␈α⊂this␈α⊃array␈α⊂acting␈α⊃on␈α⊂the␈α⊃inputs␈↓
π␈ελu␈↓
/␈εα=␈↓
d␈ελv␈↓ λ␈εα=
␈β⊃~␈↓ ↓H␈εα(␈↓ ↓Z␈εα.␈αε.␈αε.␈↓ α
␈εα00010111␈↓ β~␈εα)␈↓ β4␈εα,␈↓ βK␈ελq␈↓ βe␈εα=␈α(␈↓ ∧&␈εα.␈αε.␈αε.␈↓ ∧V␈εα00001011␈↓ ¬f␈εα)␈↓ ε↓␈εα.␈α
The␈αoutput␈α
sequence␈αappears␈α
in␈αthe␈αlo␈α␈w␈α␈er
␈β⊃(␈↓ β&␈ε¬2␈↓ ¬r␈ε¬2
␈β∪(
␈β↓Y␈↓ ↓H␈εα296␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα∨␈↓ ↓H␈εα(Table␈α1␈αwill␈αgo␈αon␈αthis␈αpage,␈αit's␈αbeing␈αset␈αseparately)
␈β∪(
␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α F␈α|AST␈αλCAN␈α WE␈α MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓
v␈εα297
␈βα(␈↓ ↓H␈εαrigh␈α␈t␈α
portion␈α
of␈α
the␈α
states␈α
of␈↓ ¬≠␈ελM␈↓ ¬H␈εα:␈α∞0,␈α
0,␈α∞1,␈α
1,␈α
1,␈α∞0,␈α
0,␈α
0,␈α
0,␈α∞1,␈α
0,␈↓ &␈εα.␈αε.␈αε.␈↓ V␈εα,␈α
represen␈α␈ting
␈βα5␈↓ ¬:␈ε¬1
␈βαS␈↓ ↓H␈εαthe␈αn␈α␈um␈α␈ber␈α(␈↓ β~␈εα.␈αε.␈αε.␈↓ βJ␈εα01000011100␈↓ ¬⊂␈εα)␈↓ ¬6␈εαfrom␈αrigh␈α␈t␈αto␈αleft.
␈βαa␈↓ ¬≤␈ε¬2
␈ββ␈↓ α␈εαThis␈αconstruction␈αis␈αbased␈αon␈αa␈αsimilar␈αone␈α|rst␈αpublished␈αby␈αA.␈α
J.␈αAtrubin,
␈ββ+␈↓ ↓H␈ε∂IEEE␈αTrans.␈ε∩␈α∂EC↑14␈εα␈α
(1965),␈α
394↑399.␈α~S.␈α
Winograd␈α
[␈ε∂JA␈α␈CM␈ε∩␈α
14␈εα␈α(1967),␈α
793↑802]
␈ββV␈↓ ↓H␈εαhas␈αin␈α␈v␈α␈estigated␈αthe␈αminim␈α␈um␈αm␈α␈ultiplication␈αtime␈αachievable␈αin␈αa␈αlogical␈αcircuit
␈β∧↓␈↓ ↓H␈εαwhen␈↓ α%␈ελn␈↓ αE␈εαis␈αgiv␈α␈en␈αand␈αwhen␈αthe␈αinputs␈αare␈αavailable␈αall␈αat␈αonce␈αin␈αcoded␈αform;␈αsee
␈β∧-␈↓ ↓H␈εαalso␈αC.␈αS.␈αWallace,␈ε∂␈αIEEE␈αTrans.␈ε∩␈αEC↑13␈εα␈α(1964),␈α14↑17.
␈β∧Y␈↓ α␈εαR.␈αP.␈αBren␈α␈t␈α
has␈αsho␈α␈wn␈αthat␈αfunctions␈α
such␈αas␈↓ πc␈εαlog␈↓ λ↔␈ελx␈↓ λ*␈εα,␈↓ λ@␈εαexp␈↓ λ}␈ελx␈↓ ⊃␈εα,␈αand␈↓ m␈εαarctan␈↓
W␈ελx␈↓
v␈εαcan
␈β∧␈␈↓ π≡␈ε¬2
␈β¬∧␈↓ ↓H␈εαbe␈α
evaluated␈αto␈↓ βD␈ελn␈↓ βd␈εαsigni|can␈α␈t␈α
bits␈αin␈↓ ¬{␈ελO␈↓ ε∃␈εα(␈↓ ε!␈ελn␈↓ ε=␈εα(␈↓ εI␈εαlog␈↓ ε⎇␈ελn␈↓ π∩␈εα)␈↓ π3␈εαlog␈↓ πg␈εαlog␈↓ λ≠␈ελn␈↓ λ0␈εα)␈αsteps,␈αusing␈α
high-speed
␈β¬0␈↓ ↓H␈εαm␈α␈ultiplication␈α[␈ε∂JA␈α␈CM␈ε∩␈α23␈εα␈α(1976),␈α242↑251].
␈βεB␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈βπ~␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε 22␈↓ α;␈εβ]␈α⊗The␈α
idea␈α
ex␈α␈pre␈α␈ssed␈α
i␈α↓n␈α
(2␈α␈)␈α∞can␈α
b␈α␈e␈α∞g␈α␈ene␈α␈ralized␈α
to␈α
the␈α
dec␈α␈i␈α↓m␈α␈al␈α∞sy␈α␈stem,␈α∞if␈α∞the
␈βπB␈↓ ↓H␈εβra␈α␈dix␈αλ2␈α is␈α repla␈α␈ced␈α b␈α␈y␈α 1␈α␈0.␈αUsin␈α␈g␈α th␈α␈i␈α↓s␈α g␈α␈en␈α␈eralization␈α␈,␈α
ca␈α␈l␈α↓c␈α␈ulate␈α 2␈α␈71␈α␈8␈α times␈α 4␈α␈742␈αλ(redu␈α␈cing
␈βπi␈↓ ↓H␈εβth␈α␈is␈α p␈α␈rodu␈α␈ct␈αλof␈α fou␈α␈r-dig␈α␈i␈α↓t␈αλn␈α␈u␈α␈m␈α␈be␈α␈rs␈α to␈αλthre␈α␈e␈α p␈α␈rod␈α␈ucts␈αλof␈α t␈α␈w␈α␈o␈α␈-␈α↓d␈α␈igit␈α n␈α}um␈α␈b␈α␈ers,␈α an␈α␈d␈αλredu␈α␈cing
␈βλ⊃␈↓ ↓H␈εβe␈α␈ach␈α
of␈αthe␈αlatt␈α␈er␈αto␈αpr␈α␈odu␈α␈cts␈αof␈αo␈α␈ne-d␈α␈i␈α↓g␈α␈it␈αn␈α}um␈α}bers).
␈βλI␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε M22␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α tha␈α␈t,␈α
in␈α s␈α␈tep␈α C1␈αλof␈α Algo␈α␈ri␈α↓th␈α␈m␈α C␈↓ π→␈εβ,␈α the␈α v␈α␈alu␈α␈e␈α of␈ε ␈α R␈εβ␈α eith␈α␈er␈α stay␈α␈s␈α the␈αλsame
␈βλm␈↓ ε'␈∧λmε'α→
␈βλo␈↓ εε␈ε↔p
␈βλp␈↓ ↓H␈εβo␈α␈r␈αi␈α↓n␈α␈crea␈α␈ses␈αb␈α␈y␈αon␈α␈e␈αwhe␈α␈n␈αw␈α␈e␈αset␈ε ␈αR␈ε↔␈α ␈αb␈↓ ε'␈ε Q␈↓ ε?␈ε↔c␈εβ.␈α∞(There␈α␈f␈α↓o␈α␈re,␈αas␈αob␈α␈serv␈α␈e␈α␈d␈αin␈αth␈α␈at␈αste␈α␈p,␈α
w␈α␈e
␈β _␈↓ ↓H␈εβn␈α␈eed␈α
no␈α␈t␈αc␈α␈alcula␈α␈te␈αa␈αsqu␈α␈are␈αro␈α␈ot.)
␈β P␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α t␈α␈hat␈αλth␈α␈e␈αλsequ␈α␈enc␈α␈es␈↓ ¬`␈ε q␈↓ ¬y␈εβ,␈↓ ε␈ε r␈↓ ε,␈εβde|␈α␈ne␈α␈d␈αλi␈α↓n␈απAl␈α↓g␈α␈orithm␈αλC␈αλsa␈α␈ti␈α↓sfy␈αλth␈α␈e␈αλineq␈α␈ua␈α␈l␈α↓ity
␈β [␈↓ ¬l␈εk␈↓ ε↔␈εk
␈β t␈↓ ↓X␈εq␈↓ ↓o␈εε+1␈↓ αU␈εr␈↓ β0␈εq␈↓ βi␈εε+␈↓ ∧α␈εq
␈β x␈↓ ↓H␈εβ2␈↓ α∃␈εβ(2␈↓ α1␈ε r␈↓ αJ␈εβ)␈↓ αu␈ε↔∀␈↓ β ␈εβ2␈↓ ∧→␈εβ,␈αwhen␈↓ ¬∧␈ε k␈↓ ¬≡␈εβ>␈α 0.
␈β {␈↓ ↓c␈ε
k␈↓ α←␈ε
k␈↓ β;␈ε
k␈↓ βG␈ε≠␈␈επ1␈↓ ∧␈ε
k
␈β
α␈↓ α=␈εk
␈β
,␈↓ ↓;␈ε↓x
␈β
0␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε 28␈↓ α;␈εβ]␈α⊗(K.␈α Bak␈α␈e␈α␈r.␈α↓)␈α∪S␈α␈ho␈α}w␈α tha␈α␈t␈α it␈α is␈α ad␈α␈va␈α␈n␈α␈ta␈α␈geo␈α␈us␈α to␈αλev␈α␈alua␈α␈te␈α th␈α␈e␈α p␈α␈olyn␈α␈omia␈α␈l␈↓
=␈ε W␈↓
←␈εβ(␈↓
j␈ε x␈↓
{␈εβ)␈α a␈α␈t
␈β
W␈↓ ↓H␈εβth␈α␈e␈απpo␈α␈i␈α↓n␈α}ts␈↓ α]␈ε x␈↓ αw␈εβ=␈ε↔␈α
␈␈↓ βC␈ε r␈↓ βR␈εβ,␈↓ βc␈εβ.␈αε.␈αε.␈↓ ∧∂␈εβ,␈α 0␈α␈,␈↓ ∧C␈εβ.␈αε.␈α¬.␈↓ ∧o␈εβ,␈↓ ¬↓␈ε r␈↓ ¬↔␈εβin␈α␈stead␈απo␈α␈f␈αλa␈α␈t␈αλth␈α␈e␈απpoin␈α}ts␈↓ πc␈ε x␈↓ π⎇␈εβ=␈α
0␈α␈,␈α 1␈α␈,␈↓ λl␈εβ.␈αε.␈α¬.␈↓ _␈εβ,␈α 2␈↓ :␈ε r␈↓ P␈εβas␈απi␈α↓n␈αεAl␈α↓g␈α␈orithm
␈β
{␈↓ πY␈εε2␈↓ λr␈εε2
␈β
␈␈↓ ↓H␈εβC␈↓ ↓b␈εβ.␈α⊂Th␈α␈e␈α
p␈α␈olyn␈α␈omial␈↓ βo␈ε U␈↓ ∧
␈εβ(␈↓ ∧∃␈ε x␈↓ ∧&␈εβ)␈α
ca␈α␈n␈α
b␈α␈e␈α
written␈↓ ε!␈ε U␈↓ ε<␈εβ(␈↓ εG␈ε x␈↓ εY␈εβ)␈α=␈↓ π≥␈ε U␈↓ π=␈εβ(␈↓ πH␈ε x␈↓ πf␈εβ)␈α +␈↓ λ#␈ε x␈↓ λ5␈ε U␈↓ λV␈εβ(␈↓ λa␈ε x␈↓ λ␈␈εβ),␈α
an␈α␈d␈α
s␈α␈i␈α↓m␈α␈i␈α↓larly␈↓
m␈ε V␈↓ ¬␈εβ(␈↓ ⊂␈ε x␈↓ !␈εβ)
␈β ␈↓ π2␈εe␈↓ λJ␈εo
␈β&␈↓ ↓H␈εβa␈α␈nd␈↓ αλ␈ε W␈↓ α)␈εβ(␈↓ α4␈ε x␈↓ αE␈εβ)␈αc␈α␈an␈α
b␈α␈e␈α
exp␈α␈an␈α␈ded␈α
in␈α
th␈α␈is␈αwa␈α␈y;␈αsh␈α␈o␈α␈w␈α
ho␈α}w␈αto␈α
e␈α␈xp␈α␈l␈α↓o␈α␈i␈α↓t␈α
th␈α␈i␈α↓s␈α
ide␈α␈a,␈αo␈α␈btain␈α␈i␈α↓n␈α␈g␈α
faste␈α␈r
␈βN␈↓ ↓H␈εβc␈α␈alculat␈α␈i␈α↓o␈α␈ns␈αin␈αste␈α␈ps␈αC7␈αa␈α␈nd␈α
C8.
␈βα␈↓ ↓;␈ε↓x
␈ββ␈↓ ␈∧β α)
␈β∧␈↓ λj␈ε↔p
␈βε␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε 35␈↓ α;␈εβ]␈α⊗Sh␈α␈o␈α␈w␈α∞tha␈α␈t␈α∂if␈α∂in␈α∞step␈α∞C1␈α∞Algo␈α␈ri␈α↓t␈α␈hm␈α∞C␈α∂w␈α␈e␈α∞set␈ε ␈α∞R␈ε↔␈α∂ ␈α∂d␈↓ ␈εβ2␈↓ ≤␈ε Q␈↓ :␈ε↔e␈εβ␈α
+␈α 1␈α∂in␈α␈stead␈α∞o␈α␈f
␈β+␈↓ αC␈∧+αCα→
␈β,␈↓ α!␈ε↔p
␈β.␈↓ ↓H␈ε R␈ε↔␈α
␈α
b␈↓ αC␈ε Q␈↓ α[␈ε↔c␈εβ,␈αwith␈αsu␈α␈i␈α↓ta␈α␈ble␈αi␈α↓n␈α␈iti␈α↓a␈α␈l␈αva␈α␈l␈α↓u␈α␈es␈αof␈↓ ε4␈ε q␈↓ εL␈εβ,␈↓ εa␈ε q␈↓ εz␈εβ,␈↓ π∂␈ε r␈↓ π(␈εβ,␈αa␈α␈nd␈↓ π}␈ε r␈↓ λ⊗␈εβ,␈αthen␈α(19␈α␈)␈αca␈α␈n␈αbe␈αi␈α↓m␈α␈pro␈α␈v␈α}ed
␈β8␈↓ ε@␈εε0␈↓ εm␈εε1␈↓ π≠␈εε0␈↓ λ
␈εε1
␈βS␈↓ β,␈∧Sβ,αb
␈βU␈↓ β␈ε↔p
␈βY␈↓ β,␈εε2␈↓ β=␈εεlg␈↓ βU␈εq
␈β`␈↓ ↓H␈εβto␈↓ ↓p␈ε t␈↓ α⊃␈ε↔∀␈↓ α;␈ε q␈↓ αz␈εβ2␈↓ β←␈ε
k␈↓ βl␈επ+␈α␈1␈↓ ∧∪␈εβ(␈↓ ∧≡␈εβlg␈↓ ∧>␈ε q␈↓ ∧⎇␈εβ).
␈βk␈↓ ↓z␈εk␈↓ αG␈εk␈↓ αU␈εε+1␈↓ ∧J␈εk␈↓ ∧W␈εε+1
␈β
_␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αtha␈α␈t␈αthe␈αsix␈αn␈α}um␈α␈b␈α␈ers␈αin␈α(2␈α␈2)␈αare␈αrela␈α␈ti␈α↓v␈α}ely␈αp␈α␈ri␈α↓m␈α␈e␈αin␈αpa␈α␈irs.
␈β
P␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α(23).
␈β∞λ␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε M27␈↓ αX␈εβ]␈α⊗Wh␈α␈y␈α do␈α␈es␈α
the␈α
in␈α}teger␈α
fa␈α␈st␈α
F␈α↓o␈α␈urier␈α
m␈α␈u␈α␈lti␈α↓p␈α␈li␈α↓c␈α␈ation␈α algorith␈α␈m␈α
bo␈α␈ther␈α
t␈α␈o␈α
w␈α␈ork
␈β∞,␈↓ α)␈εN␈↓ ∧{␈εN
␈β∞0␈↓ ↓H␈εβm␈α␈od␈αε(␈↓ α→␈εβ2␈↓ αC␈εβ+␈αα1)␈απin␈α␈stead␈αεof␈απm␈α␈od␈απ(␈↓ ∧k␈εβ2␈↓ ¬∃␈ε↔␈␈εβ␈αα1)?␈απIt␈απw␈α␈o␈α␈uld␈απs␈α␈eem␈απto␈αεbe␈αεm␈α␈uch␈αεsimp␈α␈l␈α↓er␈αεto␈απd␈α␈o␈απev␈α}eryth␈α␈ing
␈β∞T␈↓ α,␈εN
␈β∞X␈↓ ↓H␈εβm␈α␈od␈α (␈↓ α≤␈εβ2␈↓ αJ␈ε↔␈␈εβ␈αε1),␈α
av␈α}oiding␈α a␈α
lot␈α of␈α
miscellan␈α␈eou␈α␈s␈α
min␈α␈u␈α␈s␈α
signs␈α i␈α↓n␈α the␈α form␈α␈u␈α␈l␈α↓a␈α␈s,␈αsin␈α␈ce␈↓
S␈ε |␈↓
q␈εβ=␈α
2
␈β∞w␈↓ πs␈ε
n
␈β∞{␈↓ πg␈εε2
␈β∞␈␈↓ ↓H␈εβc␈α␈an␈α
b␈α␈e␈α
us␈α␈ed␈α
to␈α comp␈α␈ute␈α f␈α↓a␈α␈st␈α
Four␈α␈i␈α↓er␈α
t␈α␈ransfo␈α␈rms␈α
mo␈α␈d␈α
(␈↓ πV␈εβ2␈↓ λ ␈ε↔␈␈εβ␈αε1).␈αWha␈α␈t␈α
w␈α␈ould␈α go␈α
wro␈α␈ng␈α␈?
␈β∂/␈↓ βx␈εβ∂
␈β∂4␈↓ ∧∀␈εα(␈↓
␈εα)
␈β∂7␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε M20␈↓ αX␈εβ]␈α⊗Wha␈α␈t␈αi␈α↓s␈↓ βu␈ε u␈↓ βx␈εβ∂␈↓ ∧ ␈εβth␈α␈e␈αresu␈α␈l␈α↓t␈αo␈α␈f␈αt␈α␈wo␈α
succ␈α␈essiv␈α␈e␈αFou␈α␈rier␈αtran␈α␈sforms␈α(3␈α␈2)␈↓
⊗␈εβ?
␈β∂o␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε M21␈↓ αX␈εβ]␈α⊗Whe␈α␈re␈αi␈α↓s␈αc␈α␈ond␈α␈ition␈α(3␈α␈4)␈αused␈α␈?
␈β⊂#␈↓
u␈ε~0␈α↓0
␈β⊂'␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε M25␈↓ αX␈εβ]␈α⊗(S␈α␈ch␈↓ β6␈εβ∪␈↓ β6␈εβo␈↓ βF␈εβnh␈α␈age␈αλan␈α␈d␈α S␈α␈trassen␈α␈.)␈α∀(a␈α␈)␈α E␈α↓x␈α␈pla␈α␈i␈α↓n␈αλh␈α␈o␈α␈w␈α to␈αλcomp␈α␈ute␈αλthe␈αλn␈α␈u␈α␈m␈α␈ber␈α␈s␈↓
T␈ε W␈↓ ␈εβ=
␈β⊂6␈↓
p␈εr
␈β⊂O␈↓ ↓H␈ε W␈↓ ↓u␈εβmod␈↓ α:␈εβ(␈↓ αE␈ε K␈↓ α[␈εβ/␈α␈2)␈α
f␈α↓o␈α␈r␈α∞0␈ε↔␈α∀␈↓ ∧↔␈ε r␈↓ ∧3␈εβ<␈↓ ∧a␈ε K␈↓ ¬
␈εβin␈↓ ¬3␈ε O␈↓ ¬K␈εβ(␈↓ ¬V␈ε N␈↓ ¬u␈εβ)␈α∞ste␈α␈ps,␈α∞giv␈α␈e␈α␈n␈α
the␈α
va␈α␈lues␈α
of␈α
(␈↓ ∨␈ε U␈↓
¬␈εβ,␈↓
∀␈εβ.␈α¬.␈αε.␈↓
@␈εβ,␈↓
O␈ε U␈↓
q␈εβ,␈↓
␈␈ε U␈↓ !␈εβ)
␈β⊂Z␈↓ ↓c␈εr␈↓
d␈εε1␈↓ ∃␈εε0
␈β⊂[␈↓ 5␈εK␈↓ F␈εε/␈α␈2␈ε~␈␈εε1
␈β⊂r␈↓ ∩␈ε~0␈↓
]␈εε2␈↓
j␈εL␈↓
|␈εε+1
␈β⊂w␈↓ ↓H␈εβa␈α␈nd␈α(␈↓ α∀␈ε V␈↓ αw␈εβ,␈↓ βε␈εβ.␈α¬.␈αε.␈↓ β2␈εβ,␈↓ βA␈ε V␈↓ β`␈εβ,␈↓ βo␈ε V␈↓ ∧∞␈εβ),␈αwhe␈α␈re␈↓ ¬∂␈ε W␈↓ ¬C␈εβis␈αd␈α␈e|n␈α␈ed␈αin␈α(3␈α␈6).␈α≠(b)␈αGi␈α↓v␈α}en␈↓ λq␈ε W␈↓ $␈εβ=␈↓ O␈ε W␈↓ ⎇␈εβm␈α␈od␈↓
A␈εβ(␈↓
L␈εβ2␈↓ !␈εβ)
␈β⊃↓␈↓ βS␈εε1␈↓ ∧↓␈εε0␈↓ ¬+␈εr␈↓ k␈εr
␈β⊃α␈↓ α'␈εK␈↓ α8␈εε/␈α␈2␈ε~␈␈εε1
␈β⊃ε␈↓
␈εr
␈β⊃~␈↓ α)␈ε~0␈α↓0
␈β⊃≡␈↓ ↓H␈εβa␈α␈nd␈↓ αλ␈ε W␈↓ α?␈εβ=␈↓ αj␈ε W␈↓ β↔␈εβmod␈↓ β\␈εβ(␈↓ βg␈ε K␈↓ β⎇␈εβ/␈α␈2),␈αh␈α␈o␈α␈w␈αca␈α␈n␈↓ ¬@␈ε W␈↓ ¬s␈εβbe␈α
comp␈α␈ute␈α␈d␈αin␈↓ π`␈ε O␈↓ πx␈εβ(␈↓ λβ␈ε L␈↓ λ→␈εβ)␈αsteps?
␈β⊃)␈↓ βε␈εr␈↓ ¬\␈εr
␈β⊃-␈↓ α$␈εr
␈β∪(
␈β↓Y␈↓ ↓H␈εα298␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓
b4.3.3
␈βα*␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε M50␈↓ αX␈εβ]␈α⊗Imp␈α␈ro␈α␈v␈α}e␈απo␈α␈n␈απt␈α␈he␈αεl␈α↓o␈α}w␈α␈er␈απb␈α␈ou␈α␈nd␈αε(43␈α␈)␈α↓;␈αλis␈απit␈αεi␈α↓m␈α␈poss␈α␈i␈α↓b␈α␈le␈απfor␈αεa␈αεgen␈α␈eral␈απn␈α␈od␈α␈e-stru␈α␈cture
␈βαR␈↓ ↓H␈εβa␈α␈uto␈α␈mation␈α (as␈α
d␈α␈escrib␈α␈ed␈α
a␈α␈t␈α
the␈α close␈α
o␈α␈f␈α
Sec␈α␈ti␈α↓o␈α␈n␈α
2␈α␈.␈α↓6␈α␈)␈α
to␈α
m␈α␈u␈α␈lti␈α↓p␈α␈ly␈↓ λo␈ε n␈↓ β␈εβ-b␈α␈i␈α↓t␈α n␈α␈um␈α}bers␈α i␈α↓n␈↓
j␈ε O␈↓ α␈εβ(␈↓
␈ε n␈↓ !␈εβ)
␈βαy␈↓ ↓H␈εβc␈α␈y␈α␈cles?
␈ββ,␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε M25␈↓ αX␈εβ]␈α⊗(A.␈απSc␈α␈h␈↓ β↑␈εβ∪␈↓ β↑␈εβo␈↓ βo␈εβn␈α␈ha␈α␈ge.)␈α∂Wh␈α␈at␈απis␈απa␈απg␈α␈ood␈αεup␈α␈pe␈α␈r␈απbo␈α␈un␈α␈d␈απon␈αεthe␈αεtime␈απn␈α␈eede␈α␈d␈απto␈αεm␈α␈ultiply
␈ββS␈↓ ↓H␈εβa␈α␈n␈↓ ↓t␈ε m␈↓ α∩␈εβ-b␈α␈it␈α
n␈α}um␈α␈b␈α␈er␈α by␈α a␈α␈n␈↓ ∧ ␈ε n␈↓ ∧4␈εβ-␈α↓b␈α␈it␈α
n␈α}um␈α␈b␈α␈er,␈α
wh␈α␈en␈α bo␈α␈th␈↓ π∪␈ε m␈↓ π:␈εβan␈α␈d␈↓ πy␈ε n␈↓ λ⊗␈εβare␈α v␈α␈ery␈α la␈α␈rge␈α bu␈α␈t␈↓
!␈ε n␈↓
>␈εβis␈α
m␈α␈u␈α␈ch
␈ββ{␈↓ ↓H␈εβlar␈α␈ger␈αth␈α␈an␈↓ αt␈ε m␈↓ β⊃␈εβ,␈αba␈α␈sed␈αo␈α␈n␈αthe␈α
results␈αp␈α␈ro␈α␈v␈α␈e␈α␈d␈αin␈αth␈α␈i␈α↓s␈αse␈α␈ction␈αfo␈α␈r␈↓ λJ␈ε m␈↓ λq␈εβ=␈↓ ≠␈ε n␈↓ 0␈εβ?
␈β∧-␈↓ ↓V␈ε∪14.␈↓ α␈εβ[␈ε M42␈↓ αX␈εβ]␈α⊗Write␈αa␈αp␈α␈rogra␈α␈m␈αfo␈α␈r␈αAlgorith␈α␈m␈αC␈↓ εf␈εβ,␈αin␈α␈corp␈α␈oratin␈α␈g␈αt␈α␈he␈αi␈α↓m␈α␈pro␈α␈v␈α}emen␈α}ts␈αo␈α␈f␈αex␈α␈-
␈β∧U␈↓ ↓H␈εβe␈α␈rcise␈α4␈α␈.␈α
Comp␈α␈are␈αit␈αwith␈αa␈αpro␈α␈gram␈αfor␈αAl␈α↓g␈α␈orithm␈α4.3␈α␈.␈α↓1␈α␈M␈αa␈α␈nd␈αwith␈αa␈αpro␈α␈gram␈αba␈α␈sed
␈β∧⎇␈↓ ↓H␈εβo␈α␈n␈α(2),␈αto␈αsee␈α
ho␈α␈w␈αlarg␈α␈e␈↓ ∧&␈ε n␈↓ ∧E␈εβm␈α␈ust␈αb␈α␈e␈αbe␈α␈fore␈αAlgorith␈α␈m␈αC␈αis␈αan␈αimp␈α␈ro␈α␈v␈α}emen␈α}t.
␈β¬+␈↓ ↓;␈ε↓x
␈β¬/␈↓ ↓V␈ε∪15.␈↓ α␈εβ[␈ε M26␈↓ αX␈εβ]␈α⊗If␈↓ β→␈ε n␈↓ β8␈εβi␈α↓s␈α|x␈α}ed,␈αh␈α␈o␈α␈w␈αma␈α␈n␈α␈y␈αof␈αthe␈αauto␈α␈mata␈αin␈αthe␈αl␈α↓in␈α␈ear␈αi␈α↓te␈α␈rativ␈α␈e␈αarra␈α␈y␈α(4␈α␈5),
␈β¬W␈↓ ↓H␈εβ(4␈α␈6)␈α a␈α␈re␈αλnee␈α␈ded␈αλto␈αλc␈α␈omp␈α␈ute␈αλth␈α␈e␈αλprod␈α␈uc␈α␈t␈α o␈α␈f␈↓ ε'␈ε n␈↓ ε;␈εβ-b␈α␈i␈α↓t␈αλn␈α␈u␈α␈m␈α␈b␈α␈ers?␈α
(Note␈αλth␈α␈at␈αλthe␈αλau␈α␈toma␈α␈ton␈↓ ∧␈ε M
␈β¬a␈↓ ␈εj
␈β¬z␈↓ ¬p␈εr
␈β¬}␈↓ ↓H␈εβis␈αin⎇␈α␈ue␈α␈nced␈α
on␈α␈ly␈αb␈α␈y␈αth␈α␈e␈αcomp␈α␈on␈α␈en␈α␈t␈↓ ¬c␈ε z␈↓ ελ␈εβof␈αth␈α␈e␈αma␈α␈chin␈α␈e␈αon␈α
i␈α↓ts␈αrig␈α␈h␈α␈t,␈αso␈αw␈α␈e␈αma␈α␈y␈αrem␈α␈o␈α␈v␈α␈e
␈βε
␈↓ ¬p␈εε0
␈βε&␈↓ ↓H␈εβa␈α␈l␈α↓l␈απauto␈α␈mata␈απwh␈α␈ose␈↓ βc␈ε z␈↓ ∧β␈εβc␈α␈omp␈α␈one␈α␈n␈α␈t␈απi␈α↓s␈απalway␈α␈s␈αλzero␈απwh␈α␈ene␈α␈v␈α␈er␈απthe␈απi␈α↓n␈α␈pu␈α␈ts␈αλa␈α␈re␈↓ O␈ε n␈↓ c␈εβ-b␈α␈it␈αλn␈α␈u␈α␈m␈α␈b␈α␈ers.)
␈βε0␈↓ βn␈εε0
␈β∪(/FONT#1=cmathx[XGP,SYS]=↓∩∪⊗↔~≠ !8:<>Xpqxz{|⎇⎇/FONT#2=cmr10[XGP,SYS]=↓∞∂⊃∪!"'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUVWXYZ[\]↑←abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#3=cmr9[XGP,SYS]=∂⊃∪"'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUWXYZ[\]↑abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#4=cmr8[XGP,SYS]=0ENOSTUWW/FONT#5=cmr7[XGP,SYS]=()+,./0123456789<=[]cdglmouu/FONT#6=cmr6[XGP,SYS]=()+/012345789gll/FONT#7=cmr5[XGP,SYS]=+01233/FONT#8=cmi10[XGP,SYS]=∞∂⊃∩→%ACEGKLMNOPQRTUVWZabcdefgijklmnpqrstuvwxyz{|⎇⎇/FONT#9=cmi9[XGP,SYS]=→0123456789ACEKLMNOQRUVWXZabcdefgijkmnqrtuvwxyz||/FONT#11=cmi7[XGP,SYS]=∂KLNQRTabdefijklmnpqrst⎇⎇/FONT#12=cmi6[XGP,SYS]=KLNbcdefgijkmnoqrr/FONT#13=cmi5[XGP,SYS]=Ljknqrr/FONT#14=cmsc10[XGP,SYS]=.ACDEFGHILMNOPRSTUWYY/FONT#15=cms10[XGP,SYS]=∞",-.:?ABCDEFGHIJLMNOPRSTWZ\↑abcdefghijklmnopqrstuvwxyz|⎇⎇/FONT#16=cms9[XGP,SYS]=∞'-.1234567:?ABCDGHILMNPRSTZabcdefghijklmnoprstuvxyz||/FONT#18=cmb10[XGP,SYS]=.0123456789ABCDEFHMPRSTU↑abcdefghilmnoprstuvyy/FONT#19=cmb9[XGP,SYS]=.0123456789FNgii/FONT#21=cmtt[XGP,SYS]=()*+,-012345678:ABCDEFGHIJLMNOPQRSTUVWXYZZ/FONT#22=cmsy10[XGP,SYS]=↓αλ
⊃∀∃→≤ !1bcdefgjpx⎇⎇/FONT#23=cmsy9[XGP,SYS]=↓α⊃∀∃≤ !$bcdejpp/FONT#25=cmsy7[XGP,SYS]=↓⊃∀0bcdee/FONT#26=cmsy6[XGP,SYS]=00/FONT#27=cmsy5[XGP,SYS]=00/FONT#29=cmssb[XGP,SYS]=*-.1234?ACEFHILMNOPRSTUWXabcdeghilmnoprstuwyy